Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/02/2014, 17:24
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Ordenacion de datos en tabla a partir de SQL

Pues es algo complejo de explicar (salvo que alguien tenga otra mejor técnica) sobre todo si piensas agrupar por más de un campo.

Básicamente sería meter los datos que obtienes de la base de datos en un arreglo, donde se agruparían por las claves que requieras, en tu caso la clave a agrupar sería fecha.

Luego recorrer el arreglo y verificar si una clave tiene una o más filas dentro, entonces indicar como rowspan el número de filas contenidas.

Siguiendo tu ejemplo, se requiere agrupar primero por fecha para saber cuántas facturas habrá en la misma fecha.

Suponiendo que tienes en una tabla los campos fecha, folio,importe:

Código PHP:
Ver original
  1. while($fila=mysql_fetch_assoc($resultado))
  2.      $arreglo[$fila['fecha']][]=array('folio'=>$fila['folio'],'importe'=>$fila['importe']);//metes los datos dentro de $arreglo agrupando por fecha
  3.  
  4. .....///abres la tabla en html con sus encabezados
  5.  
  6. foreach($arreglo as $fecha =>$filas){
  7.     $cuantos=count($filas);
  8.     $x=0;
  9.     foreach($filas as $fila){
  10.         echo'<tr>';
  11.         echo '<td>'.$fila['folio'].'</td><td>'.$fila['importe'].'</td>';
  12.         if(!$x)//si estamos en la primer fila del grupo
  13.              echo '<td rowspan="'.$cuantos.'">'.$fecha.'</td>';//mostramos la columna fecha
  14.         $x++;
  15.         echo '</tr>';
  16.     }
  17. }