Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite, galera!
Tô quebrando a cabeça há algumas horas pra resolver um problema e até agora não consegui, por isso vim pedir a ajuda de vocês.
O problema é o seguinte: eu tenho duas tabelas (Clientes e Pagamentos), nas quais registro os clientes e os pagamentos que são realizados por eles.
Na tabela pagamentos existe um campo chamado IdCliente para identificar o responsável pelo pagamento;
Para cada cliente existe mais de um pagamento;
Pois bem, na página Clientes.php eu listo todos os clientes em uma tabela com soma dos valores seus respectivos pagamentos em uma coluna ao lado. Da mesma forma faço isso na página ClienteEmAtraso.php, onde listo apenas os clientes que estão com pagamentos atrasados e a soma dos valores pagos por cada um até então. No final dessa mesma página desejo somar o montante dos pagamentos apenas dos clientes que estão atrasados e é aí que estou tendo dificuldade, pois não consigo realizar a soma dos valores que obtenho na consulta.
Vejam o exemplo:
Id | Cliente | SomaPagamentos
22 | Joao | 80,00
45 | Pedro | 55,00
77 | Miguel | 20,00
A soma dos pagamentos de cada um já foi feita diretamente na consulta através do Select SUM, conforme o código abaixo:
$Select = mysql_query("SELECT SUM(ValorPago) FROM pagamentos WHERE IdCliente = '$Id'");
while ($somarecebimentos = mysql_fetch_array($Select)) {
$SomaRecebido = $somarecebimentos['SUM(ValorPago)']; }
O que eu preciso agora é somar no final da página o valor pago até então pelos três clientes, tendo com resultado: R$ 155,00;
Espero que tenha ficado claro e que alguém consiga me ajudar!!
Desde já, agradeço!!!
Mateus, o campo Status existe na tabela clientes e funciona da forma que você sugeriu. Os clientes com status '0' são os que estão em dia e os clientes com status '1' são os atrasados.
Eu pensei em repetir isso na tabela de pagamentos, mas achei que daria mais trabalho e deixaria o servidor mais carregado, pois, como eu disse, cada cliente tem vários pagamentos, as vezes mais de 10, e são muitos clientes... então eu queria alguma forma mais simples pra realizar a soma diretamente no php... será que tem como?
O que vai mandar vai ser seu WHERE a modelagem de um banco de dados conta muito em seu sistema, o ideal é ter um campo de controle na tabela pagamentos assim você poderia usar a mesma query porem com a critica usando esse campo.
Eu usaria o seguinte:
$soma=0;
while($row= ... ){
$soma+=$row["SomaPagamentos"];
}
echo $soma;
tenta ai ou qqr coisa se eu entendi errado comenta