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

No muestras la estructura ni el orden de los datos de la bbdd (infoProf???).

Tienes mezclado en el mismo script la construcción de la cabecera de la tabla con el body... no digo que no se pueda llegar a hacer pero es mas facil si lo separas.... la cabecera titulo (profesionales) fechas y dias de la semana es independiente de los datos de los profesionales y relativamente facil de construir. Divide y venceras.

En mi script doy por supuesto que la cabecera se ha creado, por eso solo construye el tbody. Corrijo y te lo comento a ver si con las adataciones que haga falta te sirve:


Código PHP:
Ver original
  1. $tablaBody="<tbody>"; // Variable donde construyo el string que al final imprimire
  2. $arrayFechas // <--- array con la fechas
  3. $arrayTareas // <--- datos de la bbdd ordenados por "order by profesional, fecha"
  4.              // como el ejemplo que he puesto con dos profesionales
  5.              // cada elemento es una tarea (profesional/fecha/tarea)
  6. $profesional=""; //Variable de control
  7. $ultFecha=0; //Variable de control
  8. for($tarea=0;$tarea<count($arrayTareas);$tareas++){  // Bucle que recorre los datos de la bbdd
  9.     if($profesional!=$arrayTareas[$tarea]["profesional"]){ //Cada vez que el profesional no es igual a la variable de control
  10.                                                                                            //se inicia una row nueva
  11.          if($tarea!=0){//Si no estamos en la primera row
  12.                 for($fecha=$ultFecha;$fecha<count($arrayFechas);$fecha++){
  13.                     $tablaBody.="<td>&nbsp;</td>"; // Completo las columnas que falten entre ultima fecha y fecha maxima
  14.                                                                           //del profesional anterior
  15.                 }
  16.                 $tablaBody.="</tr><tr>"; //Cierro antes la row anterior siempre que no estemos en la primera
  17.          }else{
  18.                 $tablaBody.="<tr>";
  19.          }
  20.           $tablaBody.="<td>".$arrayTareas[$tarea]["profesional"]."</td>";  //En la primera celda de la row imprimimos
  21.                                                                                                         //el nombre del profesional
  22.           $profesional=$arrayTareas[$tarea]["profesional"]; // Igualo la variable de control
  23.                                                                                  //al profesional actual
  24.           $ultFecha=0;  //Pongo a cero la variable de control de fechas
  25.       }
  26.       //Hasta aqui tenemos el inció de la row (y el cierre de la anterior si hace falta)
  27. //y la primera columna con el nombre del profesional
  28.  
  29.       //Apartir de aqui recorro el array de fechas comparando con la fecha de la tarea
  30.           for($fecha=$ultFecha;$fecha<count($arrayFechas);$fecha++){ //Bucle se inicia en ultFecha
  31.                if($profesional==$arrayTareas[$tarea]["profesional"]){
  32.                      if($arrayTareas[$tarea]["fecha"]==$arrayFachas[$fecha]["fecha"]){
  33.                          $tablaBody.="<td>".$arrayTareas[$tarea]["tarea"]."</td>";  //Coinciden profesional
  34.                                                                                                //y fecha imprimo la tarea
  35.                     }else{
  36.                          $tablaBody.="<td>&nbsp;</td>"; // No coincide la fecha pero si el profesional
  37.                                                       //imprimo una celda vacia
  38.                     }
  39.                $ultFecha++; //Actualizo ultima fecha
  40.                }
  41.           }
  42.     }
  43. $tablaBody.="</tr></tbody>";///Cierro la ultima row y el tbody.
  44. echo $tablaBody;  /// Imprimo el tbody.

No es igual al del post anterior.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 25/03/2013 a las 07:36