Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/11/2014, 17:21
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Consulta de resumen por campos php mysql

La tabla que pretendes es algo compleja de crear, pero es perfectamente posible.

Primero, debes agrupar la información, si no lo haces mediante un arreglo, al menos debes ordenarla correctamente, para que tus filas de resultados estén en orden consecutivo y no haya saltos.

Luego, para crear la tabla, antes de hacer la primer columna (td) debes saber cuántos registros hay; en tu ejemplo, para la columna "primero", debe tener una propiedad rowspan con valor de 8 (4 de pre matemáticas y 4 de estadísticas).

así que se empieza por algo así:
Código HTML:
Ver original
  1. <tr>
  2.      <td rowspan="8">primero<td>
luego, debes saber cuántas filas están en el dato de tu segunda columna (pre matemáticas), es decir 4, con lo que queda:

Código HTML:
Ver original
  1. <tr>
  2.      <td rowspan="8">primero<td>
  3.      <td rowspan="4">pre matemáticas<td>
y luego ver si hay más agrupaciones, en tu ejemplo ya no hay, con lo que queda:

Código HTML:
Ver original
  1. <tr>
  2.      <td rowspan="8">primero<td>
  3.      <td rowspan="4">pre matemáticas<td>
  4.      <td>Bajo<td>
  5.      <td>aaaaaaa<td>
luego completar las filas siguientes:

Código HTML:
Ver original
  1. <tr>
  2.      <td rowspan="4">pre matemáticas</td>
  3.      <td>Bajo</td>
  4.      <td>aaaaaaa</td>
  5. </tr>
  6. <tr>
  7.      <td>basico</td>
  8.      <td>cccc</td>
  9. </tr>
  10. <tr>
  11.      <td>Superior</td>
  12.      <td>zzzz</td>
  13. </tr>
  14. <tr>
  15.      <td>alto</td>
  16.      <td>wwww</td>
  17. </tr><!-- cerramos grupo pre matemáticas>
  18.  
  19. <tr>
  20.     <td rowspan="4">Estadísticas</td>
  21.     <td>Bajo</td>
  22.     <td>aaaaaaa</td>
  23. </tr>
  24. <tr>
  25.     <td>basico</td>
  26.     <td>cccc</td>
  27. </tr>
  28. <tr>
  29.     <td>Superior</td>
  30.     <td>zzzz</td>
  31. </tr>
  32. <tr>
  33.     <td>alto</td>
  34.     <td>wwww</td>
  35. </tr><!-- cerramos grupoEstadísticas y con ello el grupo "primero">

Esto yo suelo implementarlo agrupando los datos con arreglos asociativos, luego mediante un algoritmo recursivo, "dibujo" la tabla contando cuántas filas puede llegar a haber dentro de cada celda para calcular su rowspan antes de dibujarla, de esta forma, puede haber cualquier cantidad de filas dentro de cualquier celda de cualquier columna.