Crear tablas

Iru
05 de Enero del 2006
Buenas tnego problemas a la hora de crear una tabla con php que se vaya rellenando con los datos de una tabla de la base de datos.
Mi problema es que quiero que visualice los datos en 2 columnas y ordenados. Es decir si va a mostrar un listado de empleados quiero que los muestre en dos columnas ordenados por apellidos. Primero rellena 1 columna y cuando yega a la mitad de empleados pasa a la siguiente columna y sigue rellenando. Así si hay 10 empleados se mostraran 2 columnas d 5 empleados cada una.
Muchas gracias.
Un saludo

Califa
05 de Enero del 2006
Buenas. No tengo una solución para lo que planteás, pero se me ocurren dos caminos hipotéticos para encarar el tema.

1) SQL
2) HTML sin tablas

Estoy seguro de que debe haber una forma de que la base te devuelva los registros ordenados como querés: Por ej. si son 10 (ordenados de la A a la Z), que te los dé en este orden:
1-6
2-7
3-8
4-9
5-10
teniéndolos ordenados así, mostrarlos en una tabla html es muy fácil. El problema es que se me ocurre que para eso hay que saber bastante de SQL... (al menos, yo no tengo idea de cómo hacerlo)

2) Olvidarse de las tablas y usar DIVS + CSS. Bueno, esa es otra cosa que tendría que investigar, pero si sabés usar divs+css en lugar de tablas, creo que se podría hacer.

Y ahora que lo pienso, se me ocurre una tercera. Que sería guardar cada array/fila que devuelve la consulta en otro array que después podés recorrer como te convenga... Sería cuestión de probar. Interesante para investigar. Si sale algo, lo cuelgo acá.

Suerte.


Califa
05 de Enero del 2006
Bueno, está. Salió más fácil de lo que pensaba.

Para que funcione tendrías que editar sólo tres cosas:
* los datos de la conexión,
* la cantidad de registros que querés mostrar (puede ser un número par o impar, no importa), en la variable $cantReg,
* el nombre de la tabla y los campos en $consulta.

También, si querés, el html de la tabla (que es básico) para agregar estilos, border, colores, etc.

Suerte.

--------------------------

<?php
mysql_connect('localhost','usuario','password');
mysql_select_db('nombre_base');
$cantReg = 10;
if ($cantReg % 2 == 0) {
$cantFilasHTML = $cantReg/2;
} else {
$cantFilasHTML = ceil($cantReg/2);
}
$consulta = mysql_query("SELECT apellido, nombre FROM nombre_tabla ORDER BY apellido ASC LIMIT $cantReg");
if ($consulta) {
$arrEmpleados = array();
$cont = 0;
while($rs = mysql_fetch_array($consulta)){
$arrEmpleados[$cont]['apellido'] = $rs['apellido'] ;
$arrEmpleados[$cont]['nombre'] = $rs['nombre'] ;
$cont++;
}
echo "<table border=1>";
for ($i=0;$i<$cantFilasHTML;$i++) {
echo "<tr>";
echo "<td>".$arrEmpleados[$i]['apellido']."</td>";
echo "<td>".$arrEmpleados[$i]['nombre']."</td>";
echo "<td> ".$arrEmpleados[$i+$cantFilasHTML]['apellido']."</td>";
echo "<td> ".$arrEmpleados[$i+$cantFilasHTML]['nombre']."</td>";
echo "<tr>";
}
echo "</table>";
}
?>