Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/11/2012, 14:15
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: como puedo generar una tabla cruzada???

Código PHP:
Ver original
  1. <?php  
  2.  
  3. include "conexionBD.php";  
  4. //digamos que estos son las fechas introducidas por el usuario.
  5. $fecha1 = "2012-11-01";
  6. $fecha2 = "2012-11-20";
  7. $finca = " 1";
  8. $planilla = "12MD21";
  9. //aca tomo la fecha para ponerla de encabezado
  10. $conf=mysql_query("SELECT DISTINCT(Fecha) as Fecha from mov_diario WHERE Fecha >= '$fecha1' and Fecha <= '$fecha2' and Finca = '$finca' order by Fecha asc", $conexion);
  11.  
  12. echo "<table width=\"100%\" border=\"1\" align=\"center\">";
  13. echo "<tr>";
  14. echo "<td>ID</td>";
  15. echo "<td>Nombres</td>";
  16.  
  17.  while($rowf = mysql_fetch_array($conf)) {  
  18.       $farray[] = $rowf['Fecha'];
  19.       echo "<td>".$rowf['Fecha']."</td>";
  20.     }
  21. //echo "<td> Dia</td>";
  22. echo "</tr>";
  23.  
  24. $con=mysql_query("SELECT personal_catorcenald.Personal, personal_catorcenald.id,  Fecha, Finca, Valor_dia FROM mov_diario, personal_catorcenald where Fecha >= '$fecha1' and Fecha <= '$fecha2' and Finca = '$finca' and mov_diario.Nombres = personal_catorcenald.id  GROUP BY id, Fecha ORDER BY id", $conexion);
  25. $idInicial=0;
  26.  
  27.     while($row = mysql_fetch_array($con)) {
  28.     $dia=$row['Fecha'];
  29.    
  30.      if($idInicial!=$row[id]){
  31.          if ($idInicial != 0) {
  32.             for ($f = $col; $f < count($farray); $f++) {
  33.                 echo "<td>0</td>";
  34.             }
  35.             echo "</tr>";
  36.         }//Cierra la linea anterior
  37.           echo "<tr>";
  38.           echo "<td>".$row['id']."</td>";
  39.           echo "<td>".$row['Personal']."</td>";
  40.           $idInicial=$row['id'];
  41.       $col = 0; //Si no ha cambiado el nombre $col sigue con el ultimo valor.
  42.     } //Abre la linea y pone el nombre del nuevo mobre
  43.  
  44.     for ($i = $col; $i < count($farray); $i++) {
  45.         $col++;
  46.         if ($farray[$i] == $dia) {
  47.             echo "<td style=background-color:#F5D0A9;>" . $row['Valor_dia'] . "</td>"; // aca se coloca el valor.
  48.             break;
  49.         } else {
  50.             echo "<td>0</td>";
  51.         }
  52.     }
  53. }
  54.  
  55. echo "</tr>";
  56. echo "<table>";
  57. ?>

Ahora....creo. Di si ha funcionado.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.