Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/11/2012, 03:12
Chevy1975
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: como puedo generar una tabla cruzada???

saludos... nuevamente..


Agradecido por su contetacion
He estado probando el codigo y se me han presentado varios inconvenientes
estoy haciendo consultas en este caso a otra tabla..
y el problema se me presenta a la hora de generar el total por fila ya que no todos los suma correctamente.. por que la casilla de resultado se intercala en el llenado.
en vez de quedar a la derecha.
aca está el codigo.:
Código PHP:
    $conf=mysql_query("SELECT personal_catorcenal.Nombres, personal_catorcenal.id,  Fecha, Finca, Round(Produccion, 1) as prod, Cuadrilla FROM mov_obra, personal_catorcenal where Fecha >= '$fecha1' and Fecha <= '$fecha2' and Finca = '$finca' and mov_obra.Nombres = personal_catorcenal.id and Cuadrilla = '$cuad' GROUP BY Fecha ORDER BY Fecha"$conexion);
    echo 
"<table width=\"90%\" border=\"1\" align=\"left\">"// tabla hijo
    
echo "<tr>";
    echo 
"<td align=\"Center\">ID</td>";
    echo 
"<td align=\"Center\">Nombres</td>";
     while(
$rowf mysql_fetch_array($conf)) {  
          
$farray[] = $rowf['Fecha'];
               echo 
"<td align=\"center\">$rowf[Fecha]</td>";
     }
    echo 
"<td align=\"Center\">Produccion</td>";
    echo 
"</tr>";
    
$con=mysql_query("SELECT personal_catorcenal.Nombres, personal_catorcenal.id,  Fecha, Finca, Round(Produccion, 1) as prod, Round(SUM(Valor_dia), 2) as Valor, Cuadrilla FROM mov_obra, personal_catorcenal where Fecha >= '$fecha1' and Fecha <= '$fecha2' and Finca = '$finca' and mov_obra.Nombres = personal_catorcenal.id and Cuadrilla = '$cuad' GROUP BY personal_catorcenal.Nombres, Fecha ORDER BY id"$conexion);
    
$idInicial=0;
      while(
$row mysql_fetch_array($con)) {
        
$dia=$row['Fecha'];
        if(
$idInicial!=$row[id]){
              if (
$idInicial != 0) {
                for (
$f $col$f count($farray); $f++) {
                   echo 
"<td>0</td>";
                }
            }
//Cierra la linea anterior
              
echo "<tr>";
              echo 
"<td align=\"center\">$row[id]</td>";
              echo 
"<td align=\"left\">$row[Nombres]</td>";
              
$idInicial=$row['id'];
          
$col 0//Si no ha cambiado el nombre $col sigue con el ultimo valor.
          
$cols 0;
       } 
//Abre la linea y pone el nombre del nuevo mobre
        ////*********************  LLENADO DE LA tabla*************************************** /////
        
$suma +=$row['prod'];
                      for (
$i $col$i count($farray); $i++) {//for
                     
$col++;
                       if (
$farray[$i] == $dia) { //if
                    
echo "<td align=\"center\" style=background-color:#FFDD44;>$row[prod]</td>"// aca se coloca el valor.
                           
break;
                        }else { 
//else
                        
echo "<td>0</td>";
                        }
//else
                        
// for de llenado.

         
for ($j $cols$j <= count($farray); $j++){
           
//$cols ++;
            
if ($farray[$j] == $dia){
                echo 
"<td align=\"center\" style=background-color:#66AAAA;>$suma</td>";
                }
//echo "<tr>";
                
}//for
        ///////////////********** FIN DE LLENADO DE la tabla *********** ///////////
            
        
            
            
}//final de while
            
echo "<tr>";
            echo 
"<td align=\"center\" style=background-color:#99FFFF;>Total general</td>";
            echo 
"<td align=\"center\" style=background-color:#66AAAA;>$suma</td>";
            
//}
        
    ////************************* 

    
echo "</tr>";
    echo 
"</table>"
?> 
skype: Lnrdrvs