Foros del Web » Programando para Internet » PHP »

mostrar registros por columnas

Estas en el tema de mostrar registros por columnas en el foro de PHP en Foros del Web. Hola amigos alquien me podria ayudar con esto Tengo una consulta la cual debo mostrar los resultados en una tabla html con un formato especial ...
  #1 (permalink)  
Antiguo 07/09/2005, 17:28
Avatar de pablod  
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 13 años, 7 meses
Puntos: 0
mostrar registros por columnas

Hola amigos alquien me podria ayudar con esto

Tengo una consulta la cual debo mostrar los resultados en una tabla html con un formato especial

Estoy acostumbrado a realizar a realizar el while antes de un <tr> de la forma
while( $reg = mysql_fetch_array($res) ) {
<tr>
<td>dato</td>
</tr>
}

Con esto se van incrementado filas hacia abajo de acuerdo al numero de registros q me retorne la consulta.

Lo que debo hacer ahora es que los datos se muestren pero por columnas, con la restriccion que haya hasta tres columnas por fila como maximo, en cada columna se muestra un registro completo.

No se como controlar esto a medida que se muestran los datos, la estructura basica de la tabla seria asi
<tr>
//tres columnas como maximo, si llega a tres, genero una nueva fila
<td>registro 1</td>
<td>registro 2</td>
<td>registro 3</td>
</tr>

Ojala me entiendan y me puedan ayudar

Saludos Pablo.-
__________________
Pablod:-)
  #2 (permalink)  
Antiguo 07/09/2005, 18:28
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 4 meses
Puntos: 5
Si, ya mas o menos capto la idea...

Se puede hacer con un script como este:

Código PHP:
$max 3/* Numero maximo de columnas por fila */
$bloq 0/* Contador para el maximo */

echo ("<table border='0'><tr>"); /* abrimos tabla y la primera fila */
while($reg mysql_fetch_array($res)) {
if (
$bloq $max) {
echo (
"<td>".$reg['tu_campo']."</td>");
$bloq++;
    }
else {
echo (
"</tr><tr>"); /* Se cierra una fila y se comienza la nueva */
$bloq 0/* Le damos un reset al contador */
    
}    
}
echo (
"</table>"); /* Como ya se terminaron los registros cerramos la tabla */ 
Donde $max es el numero de columnas que quieres por fila y $bloq es el contador para llegar al maximo, ya lo demas es para cualquier consulta.

Es esa la idea o que?

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #3 (permalink)  
Antiguo 08/09/2005, 08:42
Avatar de pablod  
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 13 años, 7 meses
Puntos: 0
De acuerdo

Okkkk,esa es la idea.

Gracias probare el codigo y te cuento


Saludos Pablo.-
__________________
Pablod:-)
  #4 (permalink)  
Antiguo 08/09/2005, 14:58
Avatar de pablod  
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 13 años, 7 meses
Puntos: 0
Estimado este es el codigo q uso y tiene un comportamiento raro
Te explico
En la tabla tengo seis registros y cuando ejecuto el script el cuarto registro se pierde y no lo muestra, con esto solo me muestra cinco registros y son seis

Este es el codigo

<?
//realizar la consulta a la base de datos
$sql = "select * from noticia";
$res = mysql_query($sql);
$nrow = mysql_num_rows($res);

$max = 3; // Numero maximo de columnas por fila
$bloq = 0; // Contador para el maximo

echo ("<table border='0'><tr>"); /* abrimos tabla y la primera fila */
while($reg = mysql_fetch_array($res)) {

if ($bloq < $max) {
echo ("<td>".$reg['titulo']."</td>");
$bloq++;
}
else {
echo ("</tr><tr>"); /* Se cierra una fila y se comienza la nueva */
$bloq = 0; /* Le damos un reset al contador */
}
}
echo ("</table>"); /* Como ya se terminaron los registros cerramos la tabla */
?>
__________________
Pablod:-)
  #5 (permalink)  
Antiguo 09/09/2005, 10:35
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 12 años, 4 meses
Puntos: 5
Hola pablod,

Si tienes razon se pierde un registro al saltar de fila, para solucionarlo cambia esta parte del codigo:

Código PHP:
else { 
echo (
"</tr><tr>"); /* Se cierra una fila y se comienza la nueva */ 
$bloq 0/* Le damos un reset al contador */

Por esto:

Código PHP:
else{
echo (
"</tr><tr>"); /* Se cierra una fila y se comienza la nueva */ 
$bloq 0;
echo (
"<td>".$reg['titulo']."</td>"); 
$bloq++;

Cuentame si se soluciona la perdida del dato.

Saludos
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #6 (permalink)  
Antiguo 09/09/2005, 11:12
Avatar de pablod  
Fecha de Ingreso: abril-2004
Ubicación: Santiago
Mensajes: 118
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias amigo ahora funciono



Saludos Pablo.-
__________________
Pablod:-)
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:39.