rogarfil 2 Denunciar post Postado Março 6, 2012 Estudando e fazendo o código infra, não está sendo possível a Soma Total de Receita Fixa + Receita Variável e a Soma Total de Despesa Fixa + Despesas Variável. Saibam que já tentei me comunicar com o Juliano Niederauer, mas não tenho resposta, então venho buscar aqui no forúm a ajuda necessária. O SCRIPT (as modificações feitas não alteram a lógica do programa): <?php $meses = array ("Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"); // obtém os valores digitados $mes = $_POST["mes"]; $ano = $_POST["ano"]; $mes2 = $_POST["mes2"]; $ano2 = $_POST["ano2"]; // colocar datas no formato AAAA-MM-DD para consulta $data = "$ano-$mes-01"; $data2 = "$ano2-$mes2-01"; $array_datas = $RF = $RV = $DF = $DV = array(); // acessa o banco de dados e obtém os registros do perído include "config.php"; $comandoSQL = "SELECT referencia,tipo,data,valor FROM rec_desp "; $comandoSQL .= "WHERE data>='$data' and data<='$data2' order by data,referencia"; $res = mysql_query($comandoSQL); $linhas = @MYSQL_NUM_ROWS($res); if($linhas==0) { echo "<div align='center'><b>Não há receitas e despesas no período escolhido!</b></div>"; exit; } else // coloca os dados em arrays { for($i=0; $i<$linhas; $i++) { $referencia = MYSQL_RESULT($res,$i,"referencia"); $tipo = MYSQL_RESULT($res,$i,"tipo"); $data = MYSQL_RESULT($res,$i,"data"); $valor = MYSQL_RESULT($res,$i,"valor"); list($ano, $mes, $dia) = split("-", $data); $numero_mes = $mes-1; $data = $meses[$numero_mes] . "-" . $ano; if (!in_array($data, $array_datas)) $array_datas[] = $data; if($tipo=="RF") // receita fixa { if (!in_array($referencia, $RF)) $RF[]=$referencia; $receitas_fixas[$referencia][$data]= $valor; if(isset($total_receitas[$data])) $total_receitas[$data] += $valor; else $total_receitas[$data] = $valor; } elseif($tipo=="RV") // receita variável { if (!in_array($referencia, $RV)) $RV[]=$referencia; $receitas_variaveis[$referencia][$data]= $valor; if(isset($total_receitas[$data])) $total_receitas[$data] += $valor; else $total_receitas[$data] = $valor; } elseif($tipo=="DF") // despesa fixa { if (!in_array($referencia, $DF)) $DF[]=$referencia; $despesas_fixas[$referencia][$data]= $valor; if(isset($total_despesas[$data])) $total_despesas[$data] += $valor; else $total_despesas[$data] = $valor; } elseif($tipo=="DV") // despesa variável { if (!in_array($referencia, $DV)) $DV[]=$referencia; $despesas_variaveis[$referencia][$data]= $valor; if(isset($total_despesas[$data])) $total_despesas[$data] += $valor; else $total_despesas[$data] = $valor; } } } mysql_close(); $numero_colunas = sizeof($array_datas); $colunas_html = $numero_colunas+1; ?> <html> <head> <title>Controle de gastos mensais</title> </head> <body> <h2 align="center">Controle de gastos mensais</h2> <div align="center"> <center> <table border="1" cellspacing="0"> <tr> <td width="142"></td> <?php // ----- exibe as datas ----- foreach($array_datas as $data) echo "<td align=\"center\" width=\"100\"><b><font color=\"#000080\">$data</font></b></td>"; ?> </tr> <tr> <td colspan="<?php echo $colunas_html; ?>" bgcolor="#F5F5F5"><b>RECEITAS FIXAS</b></td> </tr> <?php // ----- exibe as receitas fixas ----- for($i=0; $i<sizeof($RF); $i++) { $referencia = $RF[$i]; echo "<tr><td width=\"142\">$referencia</td>"; for($j=0; $j<$numero_colunas; $j++) { $data = $array_datas[$j]; if(isset($receitas_fixas[$referencia][$data])) { $valor = $receitas_fixas[$referencia][$data]; echo "<td align=\"center\" width=\"100\">$valor</td>"; } else echo "<td align=\"center\" width=\"100\"> </td>"; } echo "</tr>"; } ?> <tr> <td colspan="<?php echo $colunas_html; ?>" bgcolor="#F5F5F5"><b>RECEITAS VARIÁVEIS</b></td> </tr> <?php // ----- exibe as receitas variáveis ----- for($i=0; $i<sizeof($RV); $i++) { $referencia = $RV[$i]; echo "<tr><td width=\"142\">$referencia</td>"; for($j=0; $j<$numero_colunas; $j++) { $data = $array_datas[$j]; if(isset($receitas_variaveis[$referencia][$data])) { $valor = $receitas_variaveis[$referencia][$data]; echo "<td align=\"center\" width=\"100\">$valor</td>"; } else echo "<td align=\"center\" width=\"100\"> </td>"; } echo "</tr>"; } ?> <tr> <td width="142" bgcolor="#D7FFFF"><b>Total Receitas:</b></td> <?php // ----- exibe o total de receitas ----- foreach($array_datas as $data) { if(isset($total_receitas[$data])) $total = $total_receitas[$data]; else $total = 0; $total=number_format($total,2,',','.'); echo "<td align=\"center\" bgcolor=\"#D7FFFF\" width=\"100\"><b>$total</b></td>"; } ?> </tr> <tr> <td colspan="<?php echo $colunas_html; ?>" bgcolor="#F5F5F5"><b>DESPESAS FIXAS</b></td> </tr> <?php // ----- exibe as despesas fixas ----- for($i=0; $i<sizeof($DF); $i++) { $referencia = $DF[$i]; echo "<tr><td width=\"142\">$referencia</td>"; for($j=0; $j<$numero_colunas; $j++) { $data = $array_datas[$j]; if(isset($despesas_fixas[$referencia][$data])) { $valor = $despesas_fixas[$referencia][$data]; echo "<td align=\"center\" width=\"100\">$valor</td>"; } else echo "<td align=\"center\" width=\"100\"> </td>"; } echo "</tr>"; } ?> <tr> <td colspan="<?php echo $colunas_html; ?>" bgcolor="#F5F5F5"><b>DESPESAS VARIÁVEIS</b></td> </tr> <?php // ----- exibe as despesas variáveis ----- for($i=0; $i<sizeof($DV); $i++) { $referencia = $DV[$i]; echo "<tr><td width=\"142\">$referencia</td>"; for($j=0; $j<$numero_colunas; $j++) { $data = $array_datas[$j]; if(isset($despesas_variaveis[$referencia][$data])) { $valor = $despesas_variaveis[$referencia][$data]; echo "<td align=\"center\" width=\"100\">$valor</td>"; } else echo "<td align=\"center\" width=\"100\"> </td>"; } echo "</tr>"; } ?> <tr> <td width="142" bgcolor="#FFE1E1"><b>Total Despesas:</b></td> <?php // ----- exibe o total de despesas ----- foreach($array_datas as $data) { if(isset($total_despesas[$data])) $total = $total_despesas[$data]; else $total = 0; $total=number_format($total,2,',','.'); echo "<td align=\"center\" bgcolor=\"#FFE1E1\" width=\"100\"><b>$total</b></td>"; } ?> </tr> <tr> <td width="142" bgcolor="#CCFFCC"><b>SALDO</b></td> <?php // --- exibe o saldo (AZUL positivo, VERMELHO negativo) --- foreach($array_datas as $data) { $saldo=0; if(isset($total_receitas[$data])) $saldo += $total_receitas[$data]; if(isset($total_despesas[$data])) $saldo -= $total_despesas[$data]; if($saldo<0) $cor = "#FF0000"; // vermelho else $cor = "#0000FF"; // azul $saldo=number_format($saldo,2,',','.'); echo "<td align=\"center\" bgcolor=\"#CCFFCC\" width=\"100\"><font color=\"$cor\"><b>$saldo</b></font></td>"; } ?> </tr> </table> </center> </div> <p align="center"><a href="conteudo.php?pg=periodo_rec_desp.php">Voltar</a></p> </body> </html> Agradeço desdejá a atenção dispensada, Rogarfil Compartilhar este post Link para o post Compartilhar em outros sites
Jordan Pinheiro_147113 15 Denunciar post Postado Março 6, 2012 q doidera.. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 6, 2012 Tem uma coisa em programação chamada debug, pelo que andei lendo não há um capitulo do livro que se dedique a uma coisa tão importante, pelo menos, foi o que vi no sumário. Se você esta aprendendo e ainda não sabe debugar, sugiro, neste caso, que faça o "capitulo 12 - debugando minha aplicação, pq nem sempre as coisas saem como esperado". Se não encontrar o capítulo 12, veja os links a seguir... :) http://imasters.com.br/artigo/9446/php/xdebug_instalacao_configuracao_e_utilizacao_com_wamp_server/ http://cobaia.net/2009/01/debugando-php-com-xdebug/ http://www.criarweb.com/artigos/instalar-zend-debugger-para-php.html Compartilhar este post Link para o post Compartilhar em outros sites
rogarfil 2 Denunciar post Postado Março 15, 2012 Quero agradecer as orientações recebidas neste forúm, pois foram de muita ajuda. Segui os passos dados pelo MODERADOR e pude obter no capítulo 12 as respostas para minha dúvida. Pude descobrir que no XAMPP o php.ini tem uma linha com referência ao xdebug. ;zend_extension = "C:xamppphpextphp_xdebug.dll" Bastando retirar o ; no início da linha (DEU PAU NO APACHE). Mais não posso deixar de agradecer o Sr. Juliano Niederauer, que com sua paciência e disponibilizando de um tempo que ele não tem, pode me orientar na solução do meu problema. Mostrando apenas o erro que EU estava cometendo. No mais, espero poder contar com todos novamente em uma nova DÚVIDA. Abraços, Rogarfil Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Março 15, 2012 Que bom que o Sr. Juliano pode resolver o seu problema, mesmo sem tempo. Boa sorte em seu aprendizado. Compartilhar este post Link para o post Compartilhar em outros sites