Sumar elementos (precios) del foreach
Hola..
Soy novato en esto pero estoy empezando a crear un sitio, con Php, y Smarty..
Mi problema es que con un foreach recorro un array (con la lista de productos) para mostrarlo en el pedido.php.
el $item es una variable array de sesion...
foreach ($item as $producto) {
$smarty->append('item', array(
'ID' => $producto["id"],
'DESCRIP' => $producto["descrip"],
'PRECIO' => $producto["precio"]
));
}
De esta manera me lista todos los productos que el usuario ha seleccionado antes de hacer el pedido real y fijarlo en la base de datos.
Lo que me interesa es que antes de llegar al pedido quiero sacar la suma total del precio de todos los productos y poder mostrarlo en pedido tambien.
la verdad no se como hacerlo o quizas no se pueda y se haga de otra manera...
gracias..
Soy novato en esto pero estoy empezando a crear un sitio, con Php, y Smarty..
Mi problema es que con un foreach recorro un array (con la lista de productos) para mostrarlo en el pedido.php.
el $item es una variable array de sesion...
foreach ($item as $producto) {
$smarty->append('item', array(
'ID' => $producto["id"],
'DESCRIP' => $producto["descrip"],
'PRECIO' => $producto["precio"]
));
}
De esta manera me lista todos los productos que el usuario ha seleccionado antes de hacer el pedido real y fijarlo en la base de datos.
Lo que me interesa es que antes de llegar al pedido quiero sacar la suma total del precio de todos los productos y poder mostrarlo en pedido tambien.
la verdad no se como hacerlo o quizas no se pueda y se haga de otra manera...
gracias..
foreach ($item as $producto) {
$smarty->append('item', array(
'ID' => $producto["id"],
'DESCRIP' => $producto["descrip"],
'PRECIO' => $producto["precio"]
));
//Esta linea es la nueva
$precio_total=$precio_total+$producto["precio"];
}
Prueba con eso a ver si te va. el precio final, al acabar de ejecutarse el foreach, debe estar en $precio_total
$smarty->append('item', array(
'ID' => $producto["id"],
'DESCRIP' => $producto["descrip"],
'PRECIO' => $producto["precio"]
));
//Esta linea es la nueva
$precio_total=$precio_total+$producto["precio"];
}
Prueba con eso a ver si te va. el precio final, al acabar de ejecutarse el foreach, debe estar en $precio_total
Aupa, gracias ya me funciono y me da el total perfectamente,...
aun asà me sale una notice :Undefined variable: precio_total line 39 que es la nueva que me mandaste... pero el total lo muestra...
tankiu
aun asà me sale una notice :Undefined variable: precio_total line 39 que es la nueva que me mandaste... pero el total lo muestra...
tankiu
Hola..
Como siempre despues de arreglar algo me vienen mas cuestiones...
Despues de conseguir fijar por un lado el pedido (usuario, precio total, fecha) me gustaria saber como guardar en otra tabla items los productos asociados a ese pedido.
Primero rescato el id nuevo del pedido y despues creo que debe haber una manera con FOR de ingresar las filas de un array que contiene los datos de cada producto seleccionado y hacer una secuencia de INSERTS por cada fila... he hecho un intento de programarlo pero no controlo bien. Si alguien me pudiera indicar como se harÃa?
mi intento
for (;;) {
//Aqui es donde me indica que no estan los indices
foreach ($item as $producto) {
$producto["id"] = $item["id"];
$producto["precio"] = $item["precio"];
$connection = mysql_connect("localhost", "root", "")
or die ("Couldn't connect to server.");
$db = mysql_select_db("carr132", $connection)
or die ("Couldn't select database.");
$sql = "insert into items (pedido, producto, precio)";
$sql .= " values (".$pedidoid.", ".$producto["id"].", ".$producto["precio"].")";
$result = mysql_query($sql) or die("Couldn´t execute $sql.");
mysql_close($connection);
}
}
Imagino que haciendo el foreach dentro del for no me va a salir nada...
salu2, iker.
Como siempre despues de arreglar algo me vienen mas cuestiones...
Despues de conseguir fijar por un lado el pedido (usuario, precio total, fecha) me gustaria saber como guardar en otra tabla items los productos asociados a ese pedido.
Primero rescato el id nuevo del pedido y despues creo que debe haber una manera con FOR de ingresar las filas de un array que contiene los datos de cada producto seleccionado y hacer una secuencia de INSERTS por cada fila... he hecho un intento de programarlo pero no controlo bien. Si alguien me pudiera indicar como se harÃa?
mi intento
for (;;) {
//Aqui es donde me indica que no estan los indices
foreach ($item as $producto) {
$producto["id"] = $item["id"];
$producto["precio"] = $item["precio"];
$connection = mysql_connect("localhost", "root", "")
or die ("Couldn't connect to server.");
$db = mysql_select_db("carr132", $connection)
or die ("Couldn't select database.");
$sql = "insert into items (pedido, producto, precio)";
$sql .= " values (".$pedidoid.", ".$producto["id"].", ".$producto["precio"].")";
$result = mysql_query($sql) or die("Couldn´t execute $sql.");
mysql_close($connection);
}
}
Imagino que haciendo el foreach dentro del for no me va a salir nada...
salu2, iker.