Pasar filas a columnas con php y mysql

Tengo una tabla que me muestra los sigtes datos:
Periodo maquinaria hora combustible
ago2009 tractor1 1256.3 250
set2009 tractor1 1852.6 20
jun2009 combi 1200.0 5
oct2009 cisterna 2500.5 145
Ahora bien, lo que necesito hacer es lo sigte:
Maquinaria junio julio agosto setiembre octubre total
                     HR COMB. HR COMB. HR COMB. HR COMB. HR COMB. HR COMB.
Tractor 1 1256.3 250 1852.6 20 3108.9 270
¿Hay algún query que me de como resultado esta tabla?.
Estaré atento a sus comentarios.
1

1 Respuesta

116.450 pts. Desarrollador web, especializado en PHP, AJAX, HTML, CSS
Vas a tener que hacer dos consultas, la primera sería
$query = "SELECT maquinaria FORM tabla GROUP BY maquinaria";
while($result = mysql_fetch_array(mysql_query($query), MYSQL_ASSOC)){
$maquinaria = $result['maquinaria'];
echo "
<tr>
<td>$maquinaria</td>
";
$query2 = "SELECT * FROM tabla WHERE maquinaria = "$maquinaria";
while(){
// Escribe el resto de las columnas
}
echo "
</tr>
";
}
Espero te sirva
Saludos
Marcelo
PD: Estoy asumiendo que tienes algún conocimiento de PHP y MySQL, y puedes completar lo que falta de código.
Buenos días.
Hice lo siguiente:
$query = mysql_query("SELECT c_serie_unidad FROM valorizaciones_temp
  GROUP BY c_serie_unidad",$conexion);
while($result = mysql_fetch_array($query))
{
$unidad = $result['c_serie_unidad'];
echo "
<table border=1>
";
echo "
<tr>
<td>$unidad</td>
";
$query2 = "SELECT h_neta, q_combustible, c_periodo FROM valorizaciones_temp WHERE c_serie_unidad = '$unidad' order by c_periodo";
$resultado= mysql_query($query2, $conexion);
while($fila=mysql_fetch_array($resultado))
//echo "
<table border=1>
";
echo "
<tr>
<td>$fila[0]</td>
<td>$fila[1]</td>
<td>$fila[2]</td>
</tr>
";
 echo "
</table>
";
}
Pero aun no me muestra el resultado...
¿Alguna sugerencia para que el periodo se incremente en forma horizontal?.
Atento a tus comentarios.
Saludos cordiales.
¿No ter ha tirado ningún error?
Intenta asignar los valores $fila[1], 2 y 3 a una variable, e imprime esa variable, tampoco sería mala idea hacer un var_dump($fila) para ver que contiene el array.
mmm... no obtengo nada... y pues con lo del var_dump(). Ilústrame con ese tema por favor.
Saludos cordiales,
Buenos días..
Utilice tu sugerencia. Pero lo que obtuve fue esto ¿?..
Este query me esta dando dolor de cabeza... y lo peor... intente con un PIVOT en mysql pero no me da resultado.
array(6) { [0]=> string(6) "101.50" ["h_neta"]=> string(6) "101.50" [1]=> string(6) "360.00" ["q_combustible"]=> string(6) "360.00" [2]=> string(4) "0809" ["c_periodo"]=> string(4) "0809" }
¿Un intento ultimo?
$query = mysql_query("SELECT c_serie_unidad FROM valorizaciones_temp
  GROUP BY c_serie_unidad",$conexion);
while($result = mysql_fetch_array($query)){
    $unidad = $result['c_serie_unidad'];
    echo "
<table border=1>
";
    echo "
<tr>
<td>$unidad</td>
";
    $query2 = "SELECT h_neta, q_combustible, c_periodo FROM valorizaciones_temp WHERE c_serie_unidad = '$unidad' order by c_periodo";
    $resultado= mysql_query($query2, $conexion);
    while($fila=mysql_fetch_array($resultado)){
        //echo "
<table border=1>
";
        echo    "
<tr>
".
                "
<td>".$fila[0]."</td>
".
                "
<td>".$fila[1]."</td>
".
                "
<td>".$fila[2]."</td>
".
                "
</tr>
";
        echo     "
</table>
";
    }
}
Con eso debería andar, y mostrar los datos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas