tonzinhu Postado Outubro 15, 2011 Denunciar Share Postado Outubro 15, 2011 Bom dia amigos,estou tentando fazer uma soma e não estou conseguindo de forma alguma.já tentei com SUM e array_sum e não soma, ele simplesmente mostra cada valor separado.Ex: 3 clientes com mensalidades de 50,00 cada um.Em vez de retornar 150,00 ele retorna 50,00 50,00 50,00.segue o script e espero que consigam me ajudar. if($cliente == ""){ if($mes == ""){ $seleciona = mysql_query("SELECT * FROM pagamentos WHERE status='$status'") or die(mysql_error()); while($l = mysql_fetch_array($seleciona)){ extract($l); $c = mysql_query("SELECT * FROM clientes WHERE idcliente='$idcliente' "); $cl = mysql_fetch_array($c); $id_c = $idcliente; extract($cl); print '<tr><td>'.$nome.$idpag.'</td> <td>'.$mes.'</td> <Td>'.$mensalidade.'</td></tr>'; $s = mysql_query("SELECT SUM(valor) as total FROM pagamentos WHERE idpag='$idpag'"); $r_s = mysql_fetch_array($s); print $r_s['total']; } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Outubro 15, 2011 Denunciar Share Postado Outubro 15, 2011 Amigo,Fiz um exemplo aqui.echo array_sum(array( 50.00, 50.00, 50.00));Saida150No caso do SUM. O campo valor está como Float? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tonzinhu Postado Outubro 15, 2011 Autor Denunciar Share Postado Outubro 15, 2011 está como double amigo.como os dados estão vindo do banco fiz dessa forma com array_sum:tentei assim:peguei os valores e joguei no array. $array = array($mensalidade); print array_sum($array);só que imprimir do mesmo jeito: 50,00 40,00 40,00 e não a soma de todos.uma coisa que achei estranho foi quando dei um print_r saiu:Array ( [0] => 40.00 ) Array ( [0] => 69.23 ) Array ( [0] => 40.00 ) os indices estão todos como 0 e não em sequencia. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Outubro 16, 2011 Denunciar Share Postado Outubro 16, 2011 Veja este tópico.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Outubro 17, 2011 Denunciar Share Postado Outubro 17, 2011 O array_sum só vai funcionar se você tiver um array de uma dimensão. Nesta caso você tem um array de 2 dimensões.Fiz um exemplo que pode te ajudar.$arr = array( array(50.00), array(50.00), array(60.00) ); print_r($arr); //Saida //Array ( [0] => Array ( [0] => 50 ) [1] => Array ( [0] => 50 ) [2] => Array ( [0] => 60 ) ) foreach($arr as $k => $v) { $resultado += $v[0]; } echo 'Resultado : ' . $resultado; // Saida // Resultado : 160 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo T. do Prado Postado Outubro 17, 2011 Denunciar Share Postado Outubro 17, 2011 $s = mysql_query("SELECT SUM(valor) as total FROM pagamentos WHERE idpag='$idpag'");você tem que dar um GROUP BY por cliente, algo tipo:SELECT CLIENTE, SUM(VALOR) FROM TABELA GROUP BY CLIENTESEntendeu?Abs. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
tonzinhu
Bom dia amigos,
estou tentando fazer uma soma e não estou conseguindo de forma alguma.
já tentei com SUM e array_sum e não soma, ele simplesmente mostra cada valor separado.
Ex: 3 clientes com mensalidades de 50,00 cada um.
Em vez de retornar 150,00 ele retorna 50,00 50,00 50,00.
segue o script e espero que consigam me ajudar.
if($cliente == ""){
if($mes == ""){
$seleciona = mysql_query("SELECT * FROM pagamentos WHERE status='$status'") or die(mysql_error());
while($l = mysql_fetch_array($seleciona)){
extract($l);
$c = mysql_query("SELECT * FROM clientes WHERE idcliente='$idcliente' ");
$cl = mysql_fetch_array($c);
$id_c = $idcliente;
extract($cl);
print '<tr><td>'.$nome.$idpag.'</td> <td>'.$mes.'</td> <Td>'.$mensalidade.'</td></tr>';
$s = mysql_query("SELECT SUM(valor) as total FROM pagamentos WHERE idpag='$idpag'");
$r_s = mysql_fetch_array($s);
print $r_s['total'];
}
}
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.