joelzsbit 1 Denunciar post Postado Fevereiro 1, 2013 Tenho o seguinte codigo: $chamada = mysql_query("SELECT * FROM tb_cad_caixa ORDER BY id"); $cont= 0; echo " <form action =\"".$_SERVER['PHP_SELF']."\" method =\"post\" align=\"center\"> <table align=\"center\" style=\"font-size:11px; width:750px;\"> <tr style=\"background:#CCC\"> <td align=\"center\">Data</td> <td align=\"center\">Histórico</td> <td align=\"center\">Deb/Cred</td> <td align=\"center\">Valor</td> <td align=\"center\">Saldo acumulado</td>// esssa coluna nao tenho no banco quero que seja mostrada na consulta... </tr> "; // Exibe o resultado da nossa consulta while($tb_caixa=mysql_fetch_array($chamada)) { // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2 // se o resto for zero mostramos uma cor, se não for mostramos outra if ($cont % 2 == 0) { $cor = "#EEEEEE"; } else { $cor = "#CCCCCC"; } echo "<tr bgcolor='".$cor."';>"; echo "<td>".date('d/m/Y', strtotime($tb_caixa['data']))."</td>"; echo "<td align=left>".$tb_caixa['historico']."</td>"; echo "<td align=center>".$tb_caixa['deb_cred']."</td>"; echo "<td align=right>".number_format($tb_caixa['valor'], 2, ',', '.')."</td>"; echo "<td align=center>". (AQUI ESTA O PROBLEMA QUERIA QUE APARECESSE O SALDO ACUMULADO) ."</td>"; echo "</tr>" ; $cont = $cont + 1; } echo " </table> </form> "; Então ali dentro do while na coluna saldo acumulado queria que o while ao percorrer a linha e chegar na coluna deb_cred se encontra-se "C" credito ele somaria o conteudo da coluna valor e se encontrasse "D" debito ele diminuiria... ex.: Bom o que eu quero que me retorne na consulta com um saldo acumulado:Data |Historico | Deb/Cred| Valor |Saldo acum31/01 | Credito emprestimo | C | 10,00 | 10,0031/01 |Pgto de diversos | D | 30,00 |-20,0031/01 |Credit de aplicaçao | C | 25,00 | 5,00 se alguem souber desde jah agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Fevereiro 1, 2013 Você pode fazer isso direto na consulta: SET @saldo=0; SELECT data, historico, deb_cred, valor, @saldo = @saldo + IF(deb_cred='D',valor*-1,valor) as saldo FROM tb_cad_caixa ORDER BY id; Ps.: esta sintaxe é para MySQL. @braços Compartilhar este post Link para o post Compartilhar em outros sites
joelzsbit 1 Denunciar post Postado Fevereiro 4, 2013 Obrigado hufersil, fiz como vc me passou mas mesmo assim está dando erro: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/rel_caixa_saldo2.php on line 58 --> esta linha é onde esta o while: while($tb_caixa=mysql_fetch_array($chamada)) acredito que esse erro é a consulta $chamada que está errado. vou postar o codigo inteiro que estou tentando fazer : $chamada = mysql_query("SET @saldo=0; SELECT historico, deb_cred, valor, @saldo = @saldo + IF(deb_cred='D',valor*-1,valor) as saldo FROM tb_cad_caixa ORDER BY id"); $cont= 0; echo " <form action =\"".$_SERVER['PHP_SELF']."\" method =\"post\" align=\"center\"> <table align=\"center\" style=\"font-size:11px; width:750px;\"> <tr style=\"background:#CCC\"> <td align=\"left\";>Histórico</td> <td align=\"center\";>Deb/Cred</td> <td align=\"center\";>Valor</td> <td align=\"center\";>Saldo</td> </tr>" ; // Exibe o resultado da nossa consulta while($tb_caixa=mysql_fetch_array($chamada)) { echo "<tr>"; echo "<td align=left>".$tb_caixa['historico']."</td>"; echo "<td align=center>".$tb_caixa['deb_cred']."</td>"; echo "<td align=right>".number_format($tb_caixa['valor'], 2, ',', '.')."</td>"; echo "<td align=left>"??????"</td>"; echo "</tr>" ; $cont = $cont + 1; } echo " </table> </form> "; Notem que na linha echo "<td align=left>"??????"</td>"; onde tem essa interrogação que não sei como colocar o codigo para que ele calcule o saldo a cada linha que o while passar. Se alguem souber como fazer essa consulta e como fazer o echo desta consulta desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Fevereiro 7, 2013 Faça duas consultas: // inicializando a variavel mysql_query('SET @saldo=0'); // efetuando a consulta $result = mysql_query("SELECT data, historico, deb_cred, valor, @saldo := @saldo + IF(deb_cred='D',valor*-1,valor) as saldo FROM tb_cad_caixa ORDER BY id"); @braços Compartilhar este post Link para o post Compartilhar em outros sites
joelzsbit 1 Denunciar post Postado Fevereiro 9, 2013 Ok... mas agora como que uso um echo pra me mostrar o resultado dessa consulta? Compartilhar este post Link para o post Compartilhar em outros sites
joelzsbit 1 Denunciar post Postado Fevereiro 12, 2013 Pessoal o q consegui o que queria .... Vejam a o codigo: <form action ="<?php echo $_SERVER['PHP_SELF'] ?>" method ="post" align="center"> <table align="center" style="font-size:11px; width:750px"> <tr style="background:#CCC"> <?php /* echo "<td align=\"left\";><a href =\"".$_SERVER['PHP_SELF']."?orderby=data\">Data</a></td>"; echo "<td align=\"left\";><a href =\"".$_SERVER['PHP_SELF']."?orderby=historico\">Histórico</a></td>"; echo "<td align=\"left\";><a href =\"".$_SERVER['PHP_SELF']."?orderby=deb_cred\">Credito</a></td>"; echo "<td align=\"left\";><a href =\"".$_SERVER['PHP_SELF']."?orderby=deb_cred\">Debito</a></td>"; echo "<td align=\"left\";><a href =\"\">Saldo</a></td>";*/ ?> <td align="center" style="font-size:12px; font-weight:bold;">Data</td> <td align="center" style="font-size:12px; font-weight:bold;">Histórico</td> <td align="center" style="font-size:12px; font-weight:bold;">Credito</td> <td align="center" style="font-size:12px; font-weight:bold;">Debito</td> <td align="center" style="font-size:12px; font-weight:bold;">Saldo</td> </tr> <?php // Exibe o resultado da nossa consulta while($linha1=mysql_fetch_array($chamada)) { if ($cont % 2 == 0){ $cor = "#EEEEEE"; } else{ $cor = "#CCCCCC"; } ?> <tr bgcolor="<?php echo $cor; ?>"> <td><?php echo date('d/m/Y', strtotime($linha1['data']));?> </td> <td><?php echo $linha1['historico'];?> </td> <td> <?php if($linha1['deb_cred']==C){ $credito = $linha1['valor']; echo $credito; }elseif($linha1['deb_cred']==D){ echo "---"; $credito = 0; } ?> </td> <td><?php if($linha1['deb_cred']==D){ $debito = $linha1['valor']; echo $debito; } elseif($linha1['deb_cred']==C){ echo "---"; $debito = 0; } ?> </td> <td> <?php $saldo = $saldo + $credito-$debito; echo $saldo; ?> </td> </tr> <?php $cont = $cont + 1; } ?> </table> </form> a saida fica assim: Data........... Historico .... Credito .. Debito........ Saldo 12/02/12.... entrada....... 100,00..... ------ ........ 100,00 12/02/12.... tarifa ........... --------..... 5,00 .......... 95,00 12/02/12 .... outra tarifa .. ------ ..... 10,00 ........ 85,00 12/02/12 .... entrada....... 8,00 ..... ----- ........ 93,00 Lembrando que no banco não tem as colunas Debito e Credito mas apenas uma coluna com o nome de deb_cred onde está cadastrado C e D, que qer dizer credito e Debito. Acredito que o codigo não esteja 100% como deve ser, pois fui juntando daqui e dali e fui montando então não sei se esse é o melhor caminho.... mas pelo menos está funcionando. Vlw todos e obrigado pela colaboração. att Joel Compartilhar este post Link para o post Compartilhar em outros sites
siamitaigo 0 Denunciar post Postado Setembro 27, 2016 Faça duas consultas: // inicializando a variavel mysql_query('SET @saldo=0'); // efetuando a consulta $result = mysql_query("SELECT data, historico, deb_cred, valor, @saldo := @saldo + IF(deb_cred='D',valor*-1,valor) as saldo FROM tb_cad_caixa ORDER BY id"); @braços Buenas de ue forma puedo detectar en la consulta ue el cliente cambia por otro para poner en cero @saldo y comenzar a incrementar nuevamente el mismo.Saludos Compartilhar este post Link para o post Compartilhar em outros sites