QUIERO SUMAR Y NO PUEDO

Pablo Di Loreto
06 de Enero del 2006
Hola. Tengo el siguiente caso: base de datos mysql y php. En una tabla de mi base de datos, tabla que se llama MOVIMIENTOS, tengo registrado los movimientos de cada cliente con el debito y el crédito (dos columnas). La tabla movimientos tendría una columna que es id_cliente, otra que es debito y otra que es credito (la simplifiqué para que me salga lo que quiero).

En el panel de control que intento armar, quiero mostrar, luego de hacer un filtro con resultados, el total (SALDO) de la suma de todos los débitos menos la suma de todos los créditos de un usuario en particular. Primeramente debo filtrar los movimientos del usuario mediante la columna id_cliente, pero luego... ¿como hago para sumar en PHP TODOS los movimientos (los registros) de cada columna (credito y debitos)???????

No he encontrado articulos al respecto!!! En el paneld e control no quiero que me muestre TODOS los creditos y débitos, solo el saldo!!!!

¿se puede hacer realmente esto? Si es asi... ¿alguna ayuda?

GRACIAS DESDE YA Y ESPERO ANSIOSAMENTE RESPUESTAS!! JAJAJA, obvio, si pueden y si se puede realizar esto que pido.

Saludos, Pablo.-

Califa
06 de Enero del 2006
Buenas.

No es muy difícil de hacer. Lo único que en la tabla tenés que usar campos tipo FLOAT UNSIGNED. FLOAT, para poder usar decimales y UNSIGNED para que no se puedan grabar valores negativos (igual, ojo, porque si le pasás -5, por ej., guarda el valor por defecto —0 o el que le pongas— en lugar de dar error como uno supondría...).

En créditos, guardás lo que el cliente tiene a favor y en débitos lo que debe (o al revés, si querés, y adaptás la cuenta). Cuando grabes un crédito, grabá un débito de 0 y viceversa.

Bueno, breve explicación: lo que hace el script es sacar los resultados de cada fila normalmente, lo único es que va acumulando/sumando en cada vuelta (o sea, por cada fila que trae de la tabla) los valores de cada columna. Cuando termina el loop, en cada variable te queda la suma total de cada columna. Después las restás y tenés el saldo.

Suerte.

<?php
mysql_connect("localhost","usuario","password");
mysql_select_db("nombre_base");
$consulta = mysql_query("select creditos,debitos from movimientos where id_cliente=1");
if($consulta) {
$creditos = 0;
$debitos = 0;
while($rs=mysql_fetch_array($consulta)) {
$creditos += $rs['creditos'];
$debitos += $rs['debitos'];
}
$saldo = $creditos-$debitos;
echo "creditos= $creditos <br>";
echo "debitos= $debitos<br>";
echo "saldo= $saldo";
}
mysql_close();
?>