Foros del Web » Programando para Internet » PHP »

Hacer una suma de la misma columna

Estas en el tema de Hacer una suma de la misma columna en el foro de PHP en Foros del Web. Hola que tal, Bueno tengo una tabla con 2 campos uno es nombre y el otro se llama monto existen cerca de 320 registros en ...
  #1 (permalink)  
Antiguo 11/04/2006, 22:44
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años, 1 mes
Puntos: 0
Hacer una suma de la misma columna

Hola que tal,
Bueno tengo una tabla con 2 campos uno es nombre y el otro se llama monto
existen cerca de 320 registros en esa tabla, el campo nombre dice un nombre de persona y el monto es una cifra númerica.

Yo hago un listado de estos casi 320 resultados y la despliego hacia abajo

Cesar 30.250
Martin 25.360
Juana 14.360
Marcela 6.350

ok se listan de esa manera, lo que necesito yo es sumar todos los campos "monto" que se despliegan hacia abajo osea que quede asi

Cesar 30.250
Martin 25.360
Juana 14.360
Marcela 6.350
_____________
Total $76.320

Espero me entiendan,
Muchas gracias.
__________________
ChilenoCesar Looking for something new...
  #2 (permalink)  
Antiguo 11/04/2006, 23:17
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 23 años, 3 meses
Puntos: 2
Hola bueno, yo lo hice una vez en un proyectillo, bueno, lo que yo hacia creo que era mas problema, porque en una tabla tenia los productos de una tienda y en otra la informacion referente a una venta, en la que podia haber varios productos de el mismo tipo y se tenian que sumar, pero bueno, lo que yo hice fue simplemente una variable en la que hiba sumando el valor de cada registro cuando este era imprimido. aqui te pongo el pedazo de codigo de mi proyecto, espero que le entiendas, porque pues no soy muy bueno para acomodar mi codigo xD, y como te digo, yo hacia varias cosas mas.

Código PHP:
$cont=0;
   $noarticulos=mysql_query("select * from venta_producto where num_factura_vta='$noventa'");
   $numarts=mysql_num_rows($noarticulos);
   $estaventa=mysql_query("select * from venta_producto where num_factura_vta='$noventa'");
   if($numarts>=1){
    $montototal=0;
   while($row = mysql_fetch_array($estaventa)) { 
       $cont++;
      $fila=fmod($cont,2);
      if($fila==0)$colorfila="#B5B5B5";
      else $colorfila="#D1D2C8";
      $comparar=$row[clave_prod];
      $articulo=mysql_query("select * from producto where clave_prod='$comparar'");
      $artrow=mysql_fetch_array($articulo);
      $preciounit=$artrow[precio_prod];
      $descprod=$artrow[descripcion_prod];
      $nombreprod=$artrow[nombre_prod];
      $totalprod=$preciounit*$row[cantidad];
       $montototal+=$totalprod;
      printf("<tr BGCOLOR='$colorfila'><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;%s</td><td>&nbsp;$ %s</td><td>&nbsp;$ %s</td></tr>", $row['clave_prod'],$nombreprod,$descprod,$row["cantidad"],$preciounit,$totalprod);
   }
   ?><TR BGCOLOR="#7785FD"><TD>&nbsp;<B><span class="style3"></B></TD> <TD>&nbsp;<B><span class="style3"></B>&nbsp;</TD><TD>&nbsp;<B><span class="style3"></B>&nbsp;</TD><TD>&nbsp;<B><span class="style3"></B>&nbsp;</TD><TD>&nbsp;<B><span class="style3">Monto total:</B>&nbsp;</TD><TD>&nbsp;<B><span class="style3"><?printf("$ %s",$montototal)?></B>&nbsp;</TD></TR>
Creo que es mucho codigo, para lo que tu necesitas, en relidad, solo necesitas una variable que vaya sumando los valores (no olvides inicializarla a cero antes de empezar el ciclo) y al ultimo la muestras y ya, eso es todo.

Bueno, aqui te pongo tambien el resultado.



Saludos.
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman

Última edición por sam; 11/04/2006 a las 23:23
  #3 (permalink)  
Antiguo 12/04/2006, 00:15
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 23 años, 1 mes
Puntos: 0
sam muchisimas gracias por tu código,
bueno luego de analizarlo un buen rato lo fui reducidiendo y llegué a esto:

$total_de_multas=0;
$estaventa=mysql_query("select * from morosos where multas > 0");
while($row = mysql_fetch_array($estaventa)) {
$preciounit=$row[multas];
$total_de_multas+=$preciounit;
}

con eso obtuve la suma de los resultados y sin ningún problema.

Otra vez Sam muchisimas gracias de verdad fué de mucha ayuda,

Saludos!!!
__________________
ChilenoCesar Looking for something new...
  #4 (permalink)  
Antiguo 12/04/2006, 18:11
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 23 años, 3 meses
Puntos: 2
Para es estamos xD
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
  #5 (permalink)  
Antiguo 12/04/2006, 19:38
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años, 6 meses
Puntos: 2
Es mejor utilizar la funcion SQL SUM()

$_sql = mysql_query("SELECT SUM(multas) as `total` FROM ventas WHERE multas > 0");
if ($_row = mysql_fetch_assoc($_sql)) {
echo $_row['total'];
}

Más info:http://www.mysql-hispano.org/page.php?id=31&pag=7
__________________
I Love Programming...
  #6 (permalink)  
Antiguo 12/04/2006, 19:49
Avatar de sam
sam
 
Fecha de Ingreso: agosto-2001
Ubicación: Aguascalientes, México.
Mensajes: 572
Antigüedad: 23 años, 3 meses
Puntos: 2
Esa funcion no la conocia, pero ps si, tienes razon, es mas facil.

Saludos xD
__________________
El que tiene voluntad de aprender, encontrará siempre un maestro...
Proverbio Aleman
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 14:09.