Foros del Web » Programando para Internet » PHP »

Mostrar Datos por Columnas

Estas en el tema de Mostrar Datos por Columnas en el foro de PHP en Foros del Web. Buenos días, Tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original while ( $row1 = mysql_fetch_array ( $consulta3 ) ) {       ...
  #1 (permalink)  
Antiguo 15/11/2012, 08:04
Avatar de Lerolero  
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Información Mostrar Datos por Columnas

Buenos días,

Tengo el siguiente codigo:

Código PHP:
Ver original
  1. while ($row1=mysql_fetch_array($consulta3)){        
  2.          
  3.            $query3 = "SELECT  t_accion.ACC_ACCION,
  4.                         Sum(t_tempario_op.TEMP_TIEMPO) AS TIEMPO
  5.                         FROM t_accion
  6.                  INNER JOIN (t_maquina
  7.                  INNER JOIN ((t_turno
  8.                  INNER JOIN (t_persona
  9.                  INNER JOIN (t_orden_produccion
  10.                  INNER JOIN t_registro_op
  11.                          ON t_orden_produccion.OP_ID = t_registro_op.REG_IDOP)
  12.                          ON t_persona.PER_ID = t_registro_op.REG_IDPERSONA)
  13.                          ON t_turno.TRN_ID = t_registro_op.REG_IDTURNO)
  14.                  INNER JOIN t_tempario_op
  15.                          ON t_registro_op.REG_ID = t_tempario_op.TEMP_REGOP)
  16.                          ON t_maquina.MAQ_ID = t_registro_op.REG_IDMAQUINA)
  17.                          ON t_accion.ACC_ID = t_tempario_op.TEMP_IDACCION
  18.                         AND t_maquina.MAQ_ID = ".$row1['MAQ_ID']."  
  19.                    GROUP BY t_accion.ACC_ACCION";
  20.            $consulta2 = $objeto->executeQuery($query3);
  21.    
  22.      
  23.        
  24.            
  25.            while ($row2=mysql_fetch_array($consulta2)){ //Crea un ciclo para traer los datos de las consultas por proceso
  26.              
  27.                echo'<td>'.$row2['ACC_ACCION'].'</td><td>'.$row2['TIEMPO'].'</td></tr>';
  28.              
  29.          }

Eso imprime una tabla parecida a la siguiente:


|MAQ1 |MAQ2 | MAQ3 | MAQ4 | MAQ5 | MAQ6
---------------------------------------------------------
ACCION1 |dato1
ACCION2 |dato1
ACCION3 |dato1
ACCION4 |dato1
ACCION5 |dato1
ACCION6 |dato1
ACCION7 |dato1
ACCION8 |dato2
ACCION9 |dato2
ACCION1 |dato2
ACCION2 |dato2
ACCION3 |dato2
ACCION7 |dato3
ACCION8 |dato3
ACCION9 |dato3
ACCION1 |dato3


Como puedo hacer para que lo imprima de la siguiente forma:

|MAQ1 |MAQ2 | MAQ3 | MAQ4 | MAQ5 | MAQ6
---------------------------------------------------------
ACCION1 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION2 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION3 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION4 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION5 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION6 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION7 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION8 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION9 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
  #2 (permalink)  
Antiguo 15/11/2012, 08:09
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Mostrar Datos por Columnas

<td>'.$row2['TIEMPO'].'</td> esto es lo que te esta imprimiendo ese dato en concreto

pues solo tienes que añadir tantos como necesites con el nombre del campo en cuestion
  #3 (permalink)  
Antiguo 15/11/2012, 08:49
Avatar de Lerolero  
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Mostrar Datos por Columnas

Creo que no me he hecho entender, la consulta ya imprime todos los datos que necesito, pero no he sido capaz de acomodarlo por columnas, pero que también coincida con las filas.
Código PHP:
Ver original
  1. $cantidad = mysql_num_rows($consulta3);
  2.     $a = 0;
  3.     echo '<tr>';
  4.     while ($row2 = mysql_fetch_array($consulta2)) { //Crea un ciclo para traer los datos de las consultas por proceso
  5.         if ($a < $cantidad) {
  6.             echo'<td>' . $row2['ACC_ACCION'] . '</td><td>' . $row2['TIEMPO'] . '</td>';
  7.             $a++;
  8.         } else {
  9.             echo "</tr><tr>";
  10.             $a = 0;
  11.         }
  12.     }

Esto imprime por columnas, pero las filas no coiniciden:

|MAQ1 |MAQ2 | MAQ3 | MAQ4 | MAQ5 | MAQ6
---------------------------------------------------------
ACCION1 |dato1 | ACCION2 |dato1 | ACCION3 |dato1 |
ACCION4 |dato1 | ACCION1 |dato2 | ACCION2 |dato2 |
  #4 (permalink)  
Antiguo 15/11/2012, 09:01
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 13 años, 11 meses
Puntos: 66
Respuesta: Mostrar Datos por Columnas

parece que el problema lo tienes montando la tabla no comprendo muy bien como lo haces para cerrar los tr de esa forma pero normalmente cuando muestras resultados de una bbdd lo haces por filas y a cada fetch array le suele corresponder un tr

esos tr /tr quitalos e incluyelos en la parte que te imprime los datos

echo'<tr><td>' . $row2['ACC_ACCION'] . '</td><td>' . $row2['TIEMPO'] . '</td></tr>';
  #5 (permalink)  
Antiguo 15/11/2012, 09:02
 
Fecha de Ingreso: junio-2011
Ubicación: Barcelona
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 17
Respuesta: Mostrar Datos por Columnas

Has probado en ponerle un width a la table?

Ejemplo:

Código:
<table width=98%>
Saludos.
__________________
Twitter: @ed33x
  #6 (permalink)  
Antiguo 15/11/2012, 09:16
Avatar de Lerolero  
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Mostrar Datos por Columnas

Este es el codigo completo que imprime la tabla:
Código PHP:
Ver original
  1. echo '<table border="2"> <tr>
  2.                <td colspan="8">Esto es horrible....!!!.....QUE MIEDOOOOOOOOOOOOOOOOO</td>
  3.                </tr><tr><td>Maquina</td>';
  4.  
  5. $query3 = " SELECT t_maquina.MAQ_ID, t_maquina.MAQ_NOMBRE,
  6.                Sum(t_tempario_op.TEMP_TIEMPO) AS TotalHoras,
  7.              Count(( REG_TIEMPO_TIRAJEA+ REG_TIEMPO_TIRAJEB)>0) AS Alistamiento
  8.               FROM t_maquina
  9.         INNER JOIN ((t_turno
  10.         INNER JOIN (t_persona
  11.         INNER JOIN (t_orden_produccion
  12.         INNER JOIN t_registro_op
  13.                 ON t_orden_produccion.OP_ID = t_registro_op.REG_IDOP)
  14.                 ON t_persona.PER_ID = t_registro_op.REG_IDPERSONA)
  15.                 ON t_turno.TRN_ID = t_registro_op.REG_IDTURNO)
  16.         INNER JOIN t_tempario_op
  17.                 ON t_registro_op.REG_ID = t_tempario_op.TEMP_REGOP)
  18.                 ON t_maquina.MAQ_ID = t_registro_op.REG_IDMAQUINA
  19.           GROUP BY t_maquina.MAQ_NOMBRE";
  20. $consulta3 = $objeto->executeQuery($query3);
  21.  
  22. while ($row1 = mysql_fetch_array($consulta3)) {
  23.     echo '<td>' . $row1['MAQ_NOMBRE'] . '</td>';
  24. }
  25. echo '<tr><td>Horas Laboradas: </td>';
  26.  
  27. mysql_data_seek($consulta3, 0);
  28.  
  29. while ($row2 = mysql_fetch_array($consulta3)) {
  30.     echo'<td>' . $row2['TotalHoras'] . '</td>';
  31. }
  32.  
  33. echo '<tr><td>Alistamientos: </td>';
  34. mysql_data_seek($consulta3, 0);
  35.  
  36.  
  37. while ($row2 = mysql_fetch_array($consulta3)) {
  38.     echo '<td>' . $row2['Alistamiento'] . '</td>';
  39. }
  40. echo '</tr>';
  41. mysql_data_seek($consulta3, 0);
  42.  
  43. while ($row1 = mysql_fetch_array($consulta3)) {
  44.  
  45.     $query3 = "SELECT  t_accion.ACC_ACCION,
  46.                         Sum(t_tempario_op.TEMP_TIEMPO) AS TIEMPO
  47.                         FROM t_accion
  48.                  INNER JOIN (t_maquina
  49.                  INNER JOIN ((t_turno
  50.                  INNER JOIN (t_persona
  51.                  INNER JOIN (t_orden_produccion
  52.                  INNER JOIN t_registro_op
  53.                          ON t_orden_produccion.OP_ID = t_registro_op.REG_IDOP)
  54.                          ON t_persona.PER_ID = t_registro_op.REG_IDPERSONA)
  55.                          ON t_turno.TRN_ID = t_registro_op.REG_IDTURNO)
  56.                  INNER JOIN t_tempario_op
  57.                          ON t_registro_op.REG_ID = t_tempario_op.TEMP_REGOP)
  58.                          ON t_maquina.MAQ_ID = t_registro_op.REG_IDMAQUINA)
  59.                          ON t_accion.ACC_ID = t_tempario_op.TEMP_IDACCION
  60.                         AND t_maquina.MAQ_ID = " . $row1['MAQ_ID'] . "  
  61.                    GROUP BY t_accion.ACC_ACCION";
  62.     $consulta2 = $objeto->executeQuery($query3);
  63.  
  64.  
  65.     $cantidad = mysql_num_rows($consulta3);
  66.     $a = 0;
  67.     echo '<tr>';
  68.     while ($row2 = mysql_fetch_array($consulta2)) { //Crea un ciclo para traer los datos de las consultas por proceso
  69.         if ($a < $cantidad) {
  70.             echo'<td>' . $row2['ACC_ACCION'] . '</td><td>' . $row2['TIEMPO'] . '</td>';
  71.             $a++;
  72.         } else {
  73.             echo "</tr><tr>";
  74.             $a = 0;
  75.         }
  76.     }
  77.  
  78. }
  79. echo '</table>';
Como coloque anteriormente imprime algo asi:

|MAQ1 |MAQ2 | MAQ3 | MAQ4 | MAQ5 | MAQ6
---------------------------------------------------------
ACCION1 |dato1 | ACCION2 |dato1 | ACCION3 |dato1 |
ACCION4 |dato1 | ACCION1 |dato2 | ACCION2 |dato2 |

Tengo problemas con abrir y cerrar "tr" para que me los muestre de la manera que yo quiero que es asi:
|MAQ1 |MAQ2 | MAQ3 | MAQ4 | MAQ5 | MAQ6
---------------------------------------------------------
ACCION1 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION2 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION3 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION4 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION5 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION6 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION7 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION8 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6
ACCION9 |dato1 | dato2 | dato3 | dato4 | dato5 | dato6

Etiquetas: columnas, registro, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:11.