Foros del Web » Programando para Internet » PHP »

Limitar registros usando el constructor For()

Estas en el tema de Limitar registros usando el constructor For() en el foro de PHP en Foros del Web. Hola gracias por leer esta duda. necesito realizar un ciclo el cual me devuelta una matriz de 3xn ejemplo: Necesito Lograr algo asi.. Código PHP: ...
  #1 (permalink)  
Antiguo 26/07/2009, 19:55
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Limitar registros usando el constructor For()

Hola gracias por leer esta duda. necesito realizar un ciclo el cual me devuelta una matriz de 3xn ejemplo:

Necesito Lograr algo asi..



Código PHP:
<table width="353" border="1">
  <
tr>
    <
td width="105">1</td>
    <
td width="112">2</td>
    <
td width="114">3</td>
  </
tr>
  <
tr>
    <
td>4</td>
    <
td>5</td>
    <
td>6</td>
  </
tr>
  <
tr>
    <
td>7</td>
    <
td>8</td>
    <
td>9</td>
  </
tr>
  <
tr>
    <
td>10</td>
    <
td>11</td>
    <
td>12</td>
  </
tr>
</
table
tengo el siguiente codigo.. pero me genera eso de manera incorrecta

Código PHP:
<?php

echo "<table width='500' border='1'>\n";

for(
$i=1$i<9$i++) {
    echo 
"<tr>\n";
    for(
$j=1$j<=3$j++) {
        echo 
"<td> $j </td>\n";
    }
    echo 
"</tr>\n";
    
}
echo 
'</table>';
?>
La idea es obtener la situacion que ven en el html.. Gracias de antemano
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.

Última edición por eddwinpaz; 26/07/2009 a las 20:06
  #2 (permalink)  
Antiguo 26/07/2009, 20:15
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Limitar registros usando el constructor For()

Cita:
Iniciado por eddwinpaz Ver Mensaje
Hola gracias por leer esta duda. necesito realizar un ciclo el cual me devuelta una matriz de 3xn ejemplo:

Necesito Lograr algo asi..



Código PHP:
<table width="353" border="1">
  <
tr>
    <
td width="105">1</td>
    <
td width="112">2</td>
    <
td width="114">3</td>
  </
tr>
  <
tr>
    <
td>4</td>
    <
td>5</td>
    <
td>6</td>
  </
tr>
  <
tr>
    <
td>7</td>
    <
td>8</td>
    <
td>9</td>
  </
tr>
  <
tr>
    <
td>10</td>
    <
td>11</td>
    <
td>12</td>
  </
tr>
</
table
tengo el siguiente codigo.. pero me genera eso de manera incorrecta

Código PHP:
<?php

echo "<table width='500' border='1'>\n";

for(
$i=1$i<9$i++) {
    echo 
"<tr>\n";
    for(
$j=1$j<=3$j++) {
        echo 
"<td> $j </td>\n";
    }
    echo 
"</tr>\n";
    
}
echo 
'</table>';
?>
La idea es obtener la situacion que ven en el html.. Gracias de antemano
Con eso generas nada más 8 filas con 3 columnas , que el valor de cada columna es el valor del incremento del contador de tu segundo for el que va hasta 3.

El html generado es correcto pero no XHTML , fijate que si en algún momento no llegas a tener datos y hacer un <td></td> algunos exploradores te pueden interpretar mal tu html y no te va a validar ni ahi , cuando tenes una celda vacia tenes que definir un texto o caracter si o si en reeplazo del dato faltante.

Saludos

PD: Fijate en codeigniter hay un muy buen sistema para generar tablas xhtml en forma dinamica y es muy facil de aprender a utilizarlo.
  #3 (permalink)  
Antiguo 26/07/2009, 20:23
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Limitar registros usando el constructor For()

No uso Frameworks. @jonatanc y tu respuesta resuelve mi problema. aun estoy pensando eso...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 26/07/2009, 20:33
Avatar de javyjaja  
Fecha de Ingreso: diciembre-2008
Ubicación: cedral S.L.P.
Mensajes: 81
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Limitar registros usando el constructor For()

Hola, pues tu codigo si te da una matriz 3xn, o que es lo que quieres exactamente, si a lo que te refieres es a los numeros dentro de las celdas, pos nadamas pon una variable,

Código PHP:
<?php 

echo "<table width='500' border='1'>\n"
$h 1;
for(
$i=1$i<9$i++) { 
    echo 
"<tr>\n"
    for(
$j=1$j<=3$j++) {
     
        echo 
"<td> $h </td>\n";
        
$h=$h+1
    } 
    echo 
"</tr>\n"
     

echo 
'</table>'
?>
  #5 (permalink)  
Antiguo 26/07/2009, 20:37
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Limitar registros usando el constructor For()

@javyjaja eso era lo que buscaba.. Muchas gracias.. ^^
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 26/07/2009, 21:20
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Limitar registros usando el constructor For()

Cita:
Iniciado por javyjaja Ver Mensaje
Hola, pues tu codigo si te da una matriz 3xn, o que es lo que quieres exactamente, si a lo que te refieres es a los numeros dentro de las celdas, pos nadamas pon una variable,

Código PHP:
<?php 

echo "<table width='500' border='1'>\n"
$h 1;
for(
$i=1$i<9$i++) { 
    echo 
"<tr>\n"
    for(
$j=1$j<=3$j++) {
     
        echo 
"<td> $h </td>\n";
        
$h=$h+1
    } 
    echo 
"</tr>\n"
     

echo 
'</table>'
?>

Oye muchas gracias la verdad resuelve mi problema pero ahora me encuentro con la siguiente.. observa.

Código PHP:
<?php

$array 
= array('a','b','c','d','e','f','g','h','i','j','k','l','m','n');
$total count($array);



echo 
"<table width='500' border='1'>\n";

$h 0;

for(
$i=0$i <=$total$i++) {

  echo 
"<tr>\n";

      for(
$j=1$j<=3$j++) {

        echo 
"<td> ".$array[$h]." </td>\n";

        
$h=$h+1;
    }

    echo 
"</tr>\n";

}
echo 
'</table>';
?>
me da como resultado.

Código PHP:
<table width='500' border='1'>
<
tr>
<
td</td>
<
td</td>
<
td</td>
</
tr>
<
tr>
<
td</td>
<
td</td>
<
td</td>
</
tr>
<
tr>
<
td</td>
<
td</td>
<
td</td>
</
tr>
<
tr>
<
td</td>
<
td</td>
<
td</td>
</
tr>
<
tr>
<
td</td>
<
td</td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
<
tr>
<
td>  </td>
<
td>  </td>
<
td>  </td>
</
tr>
</
table
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #7 (permalink)  
Antiguo 26/07/2009, 21:41
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Limitar registros usando el constructor For()

Hola , el problema que tu dices es que genera muchos tr vacios ? , mira , la solución que yo encontre a eso es cambiar $total por lo siguiente : $total = (count($array)/2)-3; , si no es eso , perdón
  #8 (permalink)  
Antiguo 27/07/2009, 20:18
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: Limitar registros usando el constructor For()

Cita:
Iniciado por jonatanc Ver Mensaje
Hola , el problema que tu dices es que genera muchos tr vacios ? , mira , la solución que yo encontre a eso es cambiar $total por lo siguiente : $total = (count($array)/2)-3; , si no es eso , perdón
Ahora si resuelve mi problema pero ahora he estado pensando la forma de hayar el 4 en este caso. para que asi si pueda devolver las tablas de manera correcta.

Código PHP:
<?php

$array 
= array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','po','w','x','y');
$total = (count($array)/2)-4// hayar el 4




echo "<table width='500' border='1'>\n";

$h 0;

for(
$columnas=0$columnas <= $total$columnas++) {

    echo 
"<tr>\n";

    for(
$filas=1$filas<=3$filas++) {

        echo 
"<td> ".$array[$h]." </td>\n";
                  
$h=$h+1;
        
    }

    echo 
"</tr>\n";

}
echo 
'</table>';
?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #9 (permalink)  
Antiguo 27/07/2009, 20:42
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Limitar registros usando el constructor For()

Código PHP:
<?

$array 
= array('a','b','d','e','f','g','h','i','j','k','l');
$total count($array)/3;


echo 
"<table width='500' border='1'>\n";

$h 0;

for(
$columnas=0$columnas $total$columnas++) {

    echo 
"<tr>\n";

    for(
$filas=1$filas<=3$filas++) {

        echo 
"<td> ".$array[$h]." </td>\n";
                  
$h=$h+1;
        
    }

    echo 
"</tr>\n";

}

echo 
'</table>';

?>
Creo que asi te funcionara hice u cambio en el primer if lo pase a menor estricto y luego , en la variable $total , divido por 3 , ya que son 3 columas por fila.

Cualquier cosa avisame.

Última edición por jonatanc; 27/07/2009 a las 21:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.