Foros del Web » Programando para Internet » PHP »

array_sum: no me funciona

Estas en el tema de array_sum: no me funciona en el foro de PHP en Foros del Web. Hola a [email protected]! Estoy intentando hacer la suma de varios productos que tengo en una BD con la función array_sum. Este es el código: Código ...
  #1 (permalink)  
Antiguo 10/01/2007, 05:02
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 13 años, 7 meses
Puntos: 3
Pregunta array_sum: no me funciona

Hola a [email protected]!

Estoy intentando hacer la suma de varios productos que tengo en una BD con la función array_sum. Este es el código:

Código PHP:
for ($i=0$row $result->fetch_assoc(); $i++){
echo 
array_sum(explode(",",$row['precio']));

El resultado que me aparece son todos los importes seguidos uno detrás de otro, pero no hace la suma. ¿Alguna idea? Gracias.
  #2 (permalink)  
Antiguo 10/01/2007, 05:41
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 14 años, 4 meses
Puntos: 19
Re: array_sum: no me funciona

Tal y como yo lo veo, a cada iteración del for sólo estás sacando un precio (de una fila de la consulta). Entonces, por qué no almacenar el precio de cada fila en un acumulador tal que así? :
Código PHP:
$acumulador 0;
for (
$i=0$row $result->fetch_assoc(); $i++){
$acumulador += $row['precio'];

Un saludo

Última edición por jerkan; 11/01/2007 a las 04:03 Razón: se me olvidaron los $ del acumulador
  #3 (permalink)  
Antiguo 10/01/2007, 10:47
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 13 años, 7 meses
Puntos: 3
Re: array_sum: no me funciona

¡Gracias Jerkan!
Funciona perfectamente. A veces nos obcecamos con algo y no sale...

Saludos.
  #4 (permalink)  
Antiguo 10/01/2007, 10:55
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 13 años, 7 meses
Puntos: 3
Re: array_sum: no me funciona

Solo una nota, por si alguien más lo necesita. Poner delante de acumulador el carácter $ para declarar la variable:

Código PHP:
$acumulador 0;
for (
$i=0$row $result->fetch_assoc(); $i++){
$acumulador += $row['precio'];

Saludos.
  #5 (permalink)  
Antiguo 29/11/2009, 08:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 30
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: array_sum: no me funciona

Hola amigos a ver si me pueden dar una mano con esto:
Esta es la salida...

Rubro Detalle Cantidad Precio U Total
Comidas Pancho 1 5 5
Comidas Alemana 2 7 14

Bebidas Pepsi 2 5 10
Bebidas Mirinda 1 5.7 5.7

Total a Pagar 19.7

Pero como veran me suma los dos últimos valores, yo necesito que me sume el total y no se como, me podrán dar una mano?
Dejo el código. Gracias!!!

<?php include ("conexion.php");
include ("peligro.php");
$hoy=date("y/m/d");
$hora=date("H:i");
$usuario=$_SESSION["nombre"];
$apellido=$_SESSION["apellido"];
$obserC=$_POST["obsercomida"];
$obserB=$_POST["obserbebida"];
//echo"$obserC";
//echo"<center><img alt='logo' src='Jalisco frente.jpg' height=13% width=40%>";
echo"<table align=center border=1 cellspacing=2 cellpadding=2>";
echo"<tr><td><font size=3><b> Rubro</td><td><b>Detalle</td></b><td><b>Cantidad</td></b><td><b>Precio U</td></b><td><b>Total</td></tr></b>";
$i=0;
for ($i=0; $i<=4; $i++){
$codigoC[$i]=$_POST["$i"];
$cantidadC[$i]=$_POST["cant$i"];
//echo"$codigoC[$i] $cantidadC[$i]";
if($codigoC[$i]!=0){
$result=mysql_db_query($dbname, "SELECT * FROM comida WHERE id_comida='$codigoC[$i]' ", $dbcon);
if($row=mysql_fetch_array($result))
do{
$comida=$row["nombrec"];
$precioC[$i]=$row["precioC"];
}
while($row=mysql_fetch_array($result));
$totalC="$precioC[$i]"*"$cantidadC[$i]";
echo"<tr><td>Comidas<td>$comida</td><td>$cantidadC[$i]</td><td>$precioC[$i]</td><td><input type=text disabled size=3 name=total$i value='$totalC'></td>";
}
}
echo"<tr><td><font color=blue><b>Observaciones</td><td><font color=red><b>$obserC</font></td>";

$totales=array_sum(array("$totalC"));

echo"<tr><td>Total Comidas<td><td><td><td><input type=text disabled size=3 name=totalesC value=$totalesC>";

$e=10;
for($e=10; $e<=14; $e++){
$codigoB[$e]=$_POST["$e"];
$cantidadB[$e]=$_POST["cant$e"];
if($codigoB[$e]!=0){
$result1=mysql_db_query($dbname, "SELECT * FROM bebidas WHERE id_bebida='$codigoB[$e]'", $dbcon);
if($row=mysql_fetch_array($result1))
do{
$bebida=$row["nombre_b"];
$precioB[$e]=$row["precioB"];}
while($row=mysql_fetch_array($result1));
$totalB="$precioB[$e]"*"$cantidadB[$e]";
echo"<tr><td>Bebidas <td> $bebida <td>$cantidadB[$e]</td><td>$precioB[$e]</td><td><input type=text disabled size=3 name=total$e value='$totalB'></td>";

}
}echo"<tr><td><font color=blue><b>Observaciones</td><td><font color=red><b>$obserB</td>";

$totalesB="$precioB[10]"*"$cantidadB[10]"+"$precioB[11]"*"$cantidadB[11]"+"$precioB[12]"*"$cantidadB[12]"+"$precioB[13]"*"$cantidadB[13]"+"$precioB[14]"*"$cantidadB[14]";
$totales="$totalesC"+"$totalesB";
echo"<tr><td>Total bebidas<td><td><td><td><input type=text disabled name=totalesB value=$totalesB size=3>";
echo"<tr><td><font color=red>Total a pagar<td><td><td><td><input type=text disabled name=totales value=$totales size=3>";
echo"<tr><td><font color=red>Precio a cobrar<td><td><td><td><input type=text name=precio_cobrado value=$totales size=3>";
echo"</table>";

Necesito que me sume las totales$i y totales$e de los inputs, el tema es que si tengo menos de 5 datos me tira el error de que el index "x" es inválido, lo que necesito es saber como tengo que hacer para que solo me sume los que existen...se entiende? el sum_array no me tira ningun resultado no se si está bien... les agradezco!
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 11:51.