Foros del Web » Programando para Internet » PHP »

Mostrar tabla completa

Estas en el tema de Mostrar tabla completa en el foro de PHP en Foros del Web. Hola, tengo una consulta en MySQL que puede puede generar como resultado una tabla con un número variable de filas y columbas. Podría ser así: ...
  #1 (permalink)  
Antiguo 26/06/2010, 06:08
 
Fecha de Ingreso: marzo-2004
Mensajes: 74
Antigüedad: 20 años
Puntos: 0
Mostrar tabla completa

Hola, tengo una consulta en MySQL que puede puede generar como resultado una tabla con un número variable de filas y columbas.

Podría ser así:
+------+-------+-------+-------+-------+
| name | exam1 | exam2 | exam3 | exam4 |
+------+-------+-------+-------+-------+
| Bob | 75 | 77 | 78 | 80 |
| Sue | 90 | 97 | 98 | 99 |
+------+-------+-------+-------+-------+

O así:
+------+-------+-------+-------+-------+
| name | exam1 | exam2 | exam3 | exam4 |
+------+-------+-------+-------+-------+
| Bob | 75 | 77 | 78 | 80 |
| Sue | 90 | 97 | 98 | 99 |
| Jose | 92 | 7 | 8 | 91 |
+------+-------+-------+-------+-------+

O así:
+------+-------+-------+-------+-------+-------+
| name |exam1|exam2|exam3| exam4 | exam5|
+------+-------+-------+-------+-------+-------+
| Bob | 75 | 77 | 78 | 80 | 45 |
| Sue | 90 | 97 | 98 | 99 | 32 |
| Jose | 92 | 7 | 8 | 91 | 21 |
+------+-------+-------+-------+-------+-------+

¿Qué tendría que hacer en PHP para representar el resultado sabiendo que la tabla puede ser variable?

Si, además, la tabla se corta de estar forma cada X número de columnas, soy el hombre más feliz del mundo. Algo así:

+------+-------+-------+-------+
| name |exam1|exam2|exam3|
+------+-------+-------+-------+
| Bob | 75 | 77 | 78 |
| Sue | 90 | 97 | 98 |
| Jose | 92 | 7 | 8 |
+------+-------+-------+-------+

+------+-------+-------+
| name | exam4 | exam5|
+------+-------+-------+
| Bob | 80 | 45 |
| Sue | 99 | 32 |
| Jose | 91 | 21 |
+------+-------+-------+


¡¡Muchas gracias!!
  #2 (permalink)  
Antiguo 26/06/2010, 09:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar tabla completa

necesitas leer lo siguiente:
Representación de datos con tablas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/06/2010, 10:23
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Mostrar tabla completa

Puedes hacerlo en una tabla, y si el espacio de examen 3 o 4 esta vacio, te lo dejará en blanco, por lo que no tendrás problemas
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #4 (permalink)  
Antiguo 26/06/2010, 14:49
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Mostrar tabla completa

Algo asi podrias hacer:
(Falta agregarle el nombre de los campos, lo cual no es dificil)

Código PHP:

$result_query
=mysql_query("select * from tabla;");

//contamos los campos que posee esa tabla
$num=mysql_num_fields($result_query);

echo 
"<table border='1'><tr>";
$contador=1;
while(
$row=mysql_fetch_array($result_query)){

//mostramos en este caso, solo un campo
echo "<td>".$row['campo']."</td>";
//echo "<td>".$row['otro_campo']."</td>";

/////////////////////////////////////////////////////////
///   esto se encargara de interrumpit la fila   ////////
if($contador == $num){
echo 
"</tr>"//interrumpimos la fila
$contador=1//y ponemos el contador a 1
}else{
$contador++; //incrementamos en 1 el contador en cada elemento de campo devuelto
}
///   esto se encargara de interrumpit la fila   ////////
/////////////////////////////////////////////////////////

}
echo 
"</table>"
...Te servira para cualquier tabla.

Última edición por wiwi74; 26/06/2010 a las 14:55

Etiquetas: completa, tablas
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 06:33.