Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/03/2013, 03:37
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Tabla con coordenadas PHP.

Al construir la tabla cada celda debe tener de id el id del profesional y la fecha, por otro lado la información de las tareas tambien tiene esos datos... luego el bucle de construcción de la tabla debe llenar la celda si conciden los datos o llenarla con un blanco.... Para optimizar debes coseguir que la información llege de la bbdd en el mismo orden en que se construiran las celdas de la tabla...

Supongamos que tines dos profesionales A y B y que tienes 3 fechas 1,2,3

----1--2--3
A A1 A2 A3
B B1 B2 B3

Sequencialmente el cuerpo de la tabla será:

<tr>
<td id="A">A</td>
<td id="A1">A1</td>
<td id="A2">A2</td>
<td id="A3">A3</td>
<tr>

Los datos de la bbdd

profesinal, fecha, tarea
A,1,Trabaja
A,3,Trabaja
B,2,Trabaja

Bucle construye cabcera con la fechas
Bucle recorre tareas
--Condicional si conciden datos de la celda y de la tarea se imprime si no se imprime &nbsp;

Todos los profesionales deben tener todas las celdas con contenido o espacio blanco (&nbsp;)

Código PHP:
Ver original
  1. $tablaBody="<tbody>";
  2. $arrayFachas <--- array con la fechas
  3. $arrayTareas <--- datos de la bbdd order by profesional, fecha
  4.  
  5. $profesional="";
  6. $ultFecha=0;
  7. for($tarea=0;$tarea<count($arrayTareas);$tareas++){
  8.     if($profesional!=$arrayTareas[$tarea]["profesional"]){
  9.          if($tarea!=0){
  10.                 $tablaBody.="</tr><tr>";
  11.          }else{
  12.                 $tablaBody.="<tr>";
  13.          }
  14.           $tablaBody.="<td>".$arrayTareas[$tarea]["profesional"]."</td>";
  15.           $profesional=$arrayTareas[$tarea]["profesional"];
  16.           $ultFecha=0;
  17.       }
  18.           for($fecha=$ultFecha;$fecha<count($arrayFachas);$fecha++){
  19.                if($profesional==$arrayTareas[$tarea]["profesional"]){
  20.                      if($arrayTareas[$tarea]["fecha"]==$arrayFachas[$fecha]["fecha"]){
  21.                          $tablaBody.="<td>".$arrayTareas[$tarea]["tarea"]."</td>";
  22.                     }else{
  23.                          $tablaBody.="<td>&nbsp;</td>";
  24.                     }
  25.                }else{
  26.                     $tablaBody.="<td>&nbsp;</td>";
  27.                }
  28.                $ultFecha++;
  29.           }
  30.     }
  31. $tablaBody.="</tr></tbody>";

hecho al vuelo puede tener algun error pero la idea es esa.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/03/2013 a las 04:11