Foros del Web » Programando para Internet » PHP »

Tabla de resultados MYSQL cambiar celda

Estas en el tema de Tabla de resultados MYSQL cambiar celda en el foro de PHP en Foros del Web. Buenas, estoy desarrollando una función para mi programa PHP que debe mostrar una tabla con valores recogidos en una BBDD, y la ultima columna quiero ...
  #1 (permalink)  
Antiguo 12/12/2012, 10:11
 
Fecha de Ingreso: diciembre-2012
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Tabla de resultados MYSQL cambiar celda

Buenas, estoy desarrollando una función para mi programa PHP que debe mostrar una tabla con valores recogidos en una BBDD, y la ultima columna quiero que se muestre todas las celdas vacías, salvo la ultima que quiero el resultado de las sumas de la columna anterior (quizás sea un tanto difícil de explicar)


Os adjunto un esquemilla gráfico:


Producto | Cantidad | Precio| Precio Total


Valor Valor 150 VACIO

Valor Valor 25 VACIO

Valor Valor 75 250



Sería algo así, pero, si bien consigo almacenando en una variable el resultado de la suma de las columnas no veo la forma de no rellenar las primeras filas de la ultima columna, el código es este:


$sql="SELECT Producto,Cantidad,Precio FROM productos";
$result=mysql_query($sql,$link);
$acum=0;
if ($row = mysql_fetch_array($result)){

echo "<table border = '1'> \n";

echo "<tr> \n";

echo "<td><b>Producto</b></td> \n";

echo "<td><b>Cantidad</b></td> \n";

echo "<td><b>Precio</b></td> \n";

echo "<td><b>Total</b></td> \n";
echo "<td><b>Precio Total</b></td> \n";

echo "</tr> \n";

do {

echo "<tr> \n";

echo "<td>".$row["Producto"]."</td> \n";

echo "<td>".$row["Cantidad"]."</td>\n";
echo "<td>".$row["Precio"]."</td>\n";
echo "<td>".$row["Precio"]*$row["Cantidad"]."</td>\n";

$acum+=$row["Precio"]*$row["Cantidad"];
echo "<td>".$acum."</td>\n";

echo "</tr> \n";

} while ($row = mysql_fetch_array($result));

echo "</table> ";
echo "<a href='login.php'>Volver atrás</a>";
echo "</table> \n";

}


Había pensado en un if((mysql_fetch_array($result))!=false que me muestre vacio y un else para que cuando sea false(teóricamente la ultima repetición) me muestre el valor de el resultado (ESTÁ ALMACENADO EN $acum).

A ver si alguno podéis echarme una mano :)

PD, Sí, trabajo con PHP sin POO :(
  #2 (permalink)  
Antiguo 16/12/2012, 09:36
 
Fecha de Ingreso: septiembre-2010
Ubicación: Corrientes - Argentina
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: Tabla de resultados MYSQL cambiar celda

Prueba así espero te sirva...
Código PHP:
// imprimes el encabezado 
echo "<table border = '1'>";
echo 
"<tr>";
echo 
"<td><b>Producto</b></td>";
echo 
"<td><b>Cantidad</b></td>";
echo 
"<td><b>Precio</b></td>";
echo 
"<td><b>Total</b></td>";
echo 
"<td><b>Precio Total</b></td>";
echo 
"</tr>";

// fijas en cero el monto del total y el itinerador de filas 
$acum=0;
$itineradorFilas=0;

$sql="SELECT Producto,Cantidad,Precio FROM productos";
$result=mysql_query($sql,$link);
$cantidadDeLineas=mysql_num_rows($result);
while (
$row mysql_fetch_array($result)){

if(
$itineradorFilas<$cantidadDeLineas){ // si el itinerador de filas es menor que la cantidad de filas en la tabla imprimes con esa celda en 0
echo "<tr>";
echo 
"<td>".$row["Producto"]."</td>";
echo 
"<td>".$row["Cantidad"]."</td>";
echo 
"<td>".$row["Precio"]."</td>";
echo 
"<td>".$row["Precio"]*$row["Cantidad"]."</td>";
echo 
"<td></td>";
echo 
"</tr>";
$acum=$acum+($row["Precio"]*$row["Cantidad"]);
$itineradorFilas=$itineradorFilas+1;
}else{ 
// si es la ultima fila (itinerador de filas=cantidad de filas) imprimes el precio acumulado
echo "<tr>";
echo 
"<td>".$row["Producto"]."</td>";
echo 
"<td>".$row["Cantidad"]."</td>";
echo 
"<td>".$row["Precio"]."</td>";
echo 
"<td>".$row["Precio"]*$row["Cantidad"]."</td>";
$acum=$acum+($row["Precio"]*$row["Cantidad"]);
echo 
"<td>".$acum."</td>";
echo 
"</tr>";
}

}
// cierras tu tabla
echo "<a href='login.php'>Volver atrás</a>";
echo 
"</table>"
__________________
Si esta vida te da la espalda, siempre puede tocarle el c...

Etiquetas: celda, mysql, resultados, sql, tabla, variables
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 17:27.