Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/09/2012, 07:03
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Tabla multidimensional: cómo afrontar el problema?

La cabecera con los nombres de los meses yo la generaria aparte, con los meses sin saltos....

Código HTML:
Ver original
  1. <table border=1>
  2.     <tr>
  3.         <td>Usuario</td>
  4.         <td>mes 1</td>
  5.         <td>mes 2</td>
  6.         <td>mes 3</td>
  7.         <td>mes 4</td>

Luego obtendria los datos asegurandome que me llegan ordenados por usuario y mes...

usuario;mes;dato
usuario1,1,dato
usuario1,3,dato
usuario2,1,dato
usuario2,2,dato
usuario3,2,dato

Necesitas variables para saber cual es el usuario anterior y cual es el mes anterior, y resetearlas convenientemente cada vez que haya un cambio...

$usuarioAnt="";
$mesAnt=0;

A partir de aqui un bucle que lea los datos y que para cada cambio en el usuario (comparando con $usuarioAnt recuerda resetearla con el nuevo valor) introduzca tantos

Código HTML:
Ver original
  1. <td>&nbsp;</td>

(esto en el primer usuario no toca)

como meses falten para llegar al ultimo y el salto de linea y el nombre

Código HTML:
Ver original
  1. </tr>
  2.     <tr>
  3.         <td>usuario 1</td>

y para cada mes introduzca el dato siempre que el mes sea el que toca, como vienen ordenados es fácil de ver...

Si mes es el siguiente introduzco

Código HTML:
Ver original
  1. <td>Dato</td>

si no es el siguiente introduzco tantos

Código HTML:
Ver original
  1. <td>&nbsp;</td>

como meses se hayan saltado....y

Código HTML:
Ver original
  1. <td>Dato</td>

para el mes en cuestion...


Al final recuerda cerrar la tabla con tantos

Código HTML:
Ver original
  1. <td>&nbsp;</td>

como meses falten para llegar al ultimo y

Código HTML:
Ver original
  1. </tr>
  2.    



Hasta aqui puedo leer sin solucionartelo....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 18/09/2012 a las 07:24