Foro de programación en PHP
Agrupar
| Autor: Pablo Publicado: 22-7-2009 11:23 AM |
|
|
Hola a todos, tengo una consulta, si alguien puede darme una mano lo voy a agradecer. Estoy haciendo una pequeña aplicacion, para que en la empresa donde trabajo, puedan cargar las recorridas de los fletes. Tengo una tabla en mysql: Remito(numero) Fecha Flete etc actualmente la muestro así <?php include("conexion.php"); $consulta= "select remito, cliente, fecha, flete, loza, bulto, tiras, observaciones from remitos ORDER BY remito"; $resultado= mysql_query($consulta); while($fila= mysql_fetch_array($resultado)){ ?> <td><?php echo($fila[remito]); ?></td> <td><?php echo($fila[fecha]); ?></td> Lo cual me da una línea para cada remito con la fecha al lado. Remito Fecha 45698 22/06/2009 65445 22/06/2009 56465 23/06/2009 Alguien sabría decirme u orientarme como hacer para que me lo muestre de la siguiente manera: Fecha: 22/06/2009 Remito 45698 65445 Fecha: 23/06/2009 56465 Muchas gracias. Pablo |
|
| Autor: Boris Publicado: 27-7-2009 07:47 PM |
|
| Has que los mismos echo vayan creando la tabla con los datos: Ejemplo <?php include("conexion.php"); $consulta= "select remito, cliente, fecha, flete, loza, bulto, tiras, observaciones from remitos ORDER BY remito"; $resultado= mysql_query($consulta); while($fila = mysql_fetch_array($resultado)){ echo "<table><tr><td>Cliente:</td><td>$fila[cliente]</td></tr>"; .... ?> Así vas creando la tabla hasta terminarla con todos los datos. |
|
| Autor: Ko-Barde Publicado: 13-9-2009 06:22 AM |
|
| Lo primero es decirte que soy novato en PHP, por lo que puede haber errores de sintaxis en los ejemplos. Te propongo 2 soluciones, una mediante 2 consultas y otra via PHP para que, como dice Boris, se vaya creando la tabla sola (el ejemplo es sólo para remito y fecha pero puedes emplear el mismo método para agrupar por mas campos) <?php include("conexion.php"); $consulta1= "SELECT Remitos.Fecha FROM Remitos GROUP BY Remitos.Fecha ORDER BY Remitos.Fecha"; //Obtengo las fechas que agrupan a los remitos $resultado1= mysql_query($consulta1); while($fila1= mysql_fetch_array($resultado1)){ ?> <td><?php echo($fila1); ?></td> <?php $consulta2= "SELECT Remitos.Remito FROM Remitos WHERE (Remitos.Fecha=Cuando) ORDER BY Remitos.Remito"; //Obtengo los remitos de cada fecha $resultado2= mysql_query($consulta2); while($fila2= mysql_fetch_array($resultado2)){ ?> <td><?php echo($fila2); ?></td> Otra posibilidad es dejar el agrupamiento al programa PHP comparando las fechas de cada ciclo en vez de pasarle la tarea al motor de la base de datos <?php include("conexion.php"); $consulta= "select remito, fecha from remitos ORDER BY fecha, remito"; $resultado= mysql_query($consulta); $fechaAnterior=""; //Podría asignarse la primera fecha de $resultado y ahorrarnos el primer if while($fila= mysql_fetch_array($resultado)){ $imprimeFecha=true; if ($fechaAnterior="") { //La inicializamos con la primera fecha y la presentamos al navegador $fechaAnterior=$fila[fecha]; }else{ if ($fechaAnterior=$fila[fecha]) $imprimeFecha=false; //Si la fecha no cambia no hace falta presentarla al navegador }//end if fechaanterior if ($imprimeFecha) echo("<td>$fila[fecha]</td>"); echo("<td>$fila[remito]</td>"); //Podría mejorarse la presentación mediante html ?> |
|

