Ir para conteúdo

POWERED BY:

Rubens Ferreira de Couto

Members
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que Rubens Ferreira de Couto postou

  1. Rubens Ferreira de Couto

    [Resolvido] função não retorna dados à pagina

    Já comsegui resolver o problema. corrigido a função: ============================================= public function dados_saldo($idconta, $mes_hoje, $ano_hoje ) { try { $stmt = $this->conn->prepare("SELECT idconta, DATE_FORMAT(datamov,'%m/%Y') AS ref, DATE_FORMAT(datamov,'%m') AS mes, DATE_FORMAT(datamov,'%Y') AS ano, SUM(IF(tipo = 0, valor, 0)) AS debito, SUM(IF(tipo = 1, valor, 0)) AS credito,(SELECT SUM(IF(tipo = 1, valor, -valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') >=DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS saldo FROM lc_movimento WHERE idconta =:contapd and mes=:mes and ano=:ano GROUP BY idconta, mes, ano ORDER BY ano, mes;"); $stmt->bindParam(":contapd", $idconta, PDO::PARAM_INT); $stmt->bindParam(":mes", $mes_hoje, PDO::PARAM_INT); $stmt->bindParam(":ano", $ano_hoje, PDO::PARAM_INT); $stmt->execute(); $result=$stmt->fetchAll(PDO::FETCH_ASSOC); return $result; } catch(PDOException $e) { echo $e->getMessage(); } } ============================================= Aos que se fizerem interessados, consegui fazer uma consulta ao banco de dados que me retornou os dados que eu precisava para um demonstrativo de balanço de fluxo de caixa. a minha tabela contem a seguinte configuração: Nome: lc_movimento Campos: Id, tipo, dia, mes, ano, Idlivro, folha, cat, descricao, valor, datamov, idconta, data_lancamento Consulta: idconta, mes, ano, credito, debito, bal_mes, saldo_aa, credito_acum, debito_acum. ================================================================================== Abaixo a consulta: SELECT idconta, month(datamov) AS mes, year(datamov) AS ano, SUM(IF(lc_movimento.tipo = 1, valor, 0)) AS credito, SUM(IF(lc_movimento.tipo = 0, -1*valor, 0)) AS debito, (SELECT SUM(IF(tipo = 1, valor, -1*valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') = DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS bal_mes, (SELECT SUM(IF(tipo = 1, valor, -1*valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') >= DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS saldo_atual, (SELECT SUM(IF(tipo = 1, valor, -1*valor)) FROM lc_movimento AS L2 WHERE year(lc_movimento.datamov) > year(L2.datamov) and idconta = lc_movimento.idconta) AS saldo_aa, (SELECT SUM(valor) FROM lc_movimento AS L3 WHERE tipo=1 and year(lc_movimento.datamov) = year(L3.datamov) and month(lc_movimento.datamov) >= month(L3.datamov) and idconta = lc_movimento.idconta) AS credito_acum, (SELECT SUM(valor)*-1 FROM lc_movimento AS L3 WHERE tipo=0 and year(lc_movimento.datamov) = year(L3.datamov) and month(lc_movimento.datamov) >= month(L3.datamov) and idconta = lc_movimento.idconta) AS debito_acum FROM lc_movimento WHERE idconta=1 and year(datamov)=2015 and month(datamov)<=5 GROUP BY idconta, ano, mes; ====================================================================================== O retorno dos dados ficaram assim: idconta mes ano credito debito bal_mes saldo_atual saldo_aa credito_acum debito_acum 1 1 2015 1490.00 -1510.00 -20.00 550.00 570.00 1490.00 -1510.00 1 2 2015 1429.50 -1169.00 260.50 810.50 570.00 2919.50 -2679.00 1 3 2015 2270.00 -1866.00 404.00 1214.50 570.00 5189.50 -4545.00 1 4 2015 1190.00 -2202.50 -1012.50 202.00 570.00 6379.50 -6747.50 1 5 2015 2206.50 -2320.00 -113.50 88.50 570.00 8586.00 -9067.50 Boa sorte e bons aproveitamento a todos.
  2. Rubens Ferreira de Couto

    [Resolvido] função não retorna dados à pagina

    Já comsegui resolver o problema. corrigido a função: ============================================= public function dados_saldo($idconta, $mes_hoje, $ano_hoje ) { try { $stmt = $this->conn->prepare("SELECT idconta, DATE_FORMAT(datamov,'%m/%Y') AS ref, DATE_FORMAT(datamov,'%m') AS mes, DATE_FORMAT(datamov,'%Y') AS ano, SUM(IF(tipo = 0, valor, 0)) AS debito, SUM(IF(tipo = 1, valor, 0)) AS credito,(SELECT SUM(IF(tipo = 1, valor, -valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') >=DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS saldo FROM lc_movimento WHERE idconta =:contapd and mes=:mes and ano=:ano GROUP BY idconta, mes, ano ORDER BY ano, mes;"); $stmt->bindParam(":contapd", $idconta, PDO::PARAM_INT); $stmt->bindParam(":mes", $mes_hoje, PDO::PARAM_INT); $stmt->bindParam(":ano", $ano_hoje, PDO::PARAM_INT); $stmt->execute(); $result=$stmt->fetchAll(PDO::FETCH_ASSOC); return $result; } catch(PDOException $e) { echo $e->getMessage(); } } =============================================
  3. Rubens Ferreira de Couto

    [Resolvido] função não retorna dados à pagina

    Prezados Senhores, pelo codigo abaixo descrito consigo buscar na base de dados o que preciso, porém quando insiro em uma função a mesma consulta SQL, não me retorna os dados da mesma forma que diretamente na página porque a consulta só retorna 1 linha. ==primeiro codigo== require_once('config/dbconfig.php'); include "functions.php"; $contapd = 1; $mes = 2; $ano = 2015; $tipo = 1; $data_i = "2020-01-02"; $data_f = "2020-01-18"; $pdo = new Database(); $db = $pdo->dbConnection(); //$stmt = $db->prepare("SELECT * FROM lc_movimento WHERE idconta='$contapd' and mes='$mes_hoje' and ano='$ano_hoje'"); //$stmt = $db->prepare("SELECT * FROM lc_movimento WHERE month(datamov)='$mes_hoje' and year(datamov)='$ano_hoje' and idconta='$contapd'"); $stmt = $db->prepare("SELECT idconta, DATE_FORMAT(datamov,'%m/%Y') AS ref, DATE_FORMAT(datamov,'%m') AS mes, DATE_FORMAT(datamov,'%Y') AS ano, SUM(IF(tipo = 0, valor, 0)) AS debito, SUM(IF(tipo = 1, valor, 0)) AS credito, (SELECT SUM(IF(tipo = 1, valor, -valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') >= DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS saldo FROM lc_movimento WHERE idconta =:contapd and mes=:mes and ano=:ano GROUP BY idconta, MONTH(datamov), YEAR(datamov) ORDER BY YEAR(datamov), MONTH(datamov);"); $stmt->bindparam(':contapd', $contapd ); $stmt->bindparam(':mes', $mes ); $stmt->bindparam(':ano', $ano ); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($result as $linha){ ?> <table border="1"> <th>Conta</th> <th>Ref</th> <th>Mes</th> <th>Ano</th> <th>Saldo Ant.</th> <th>Debito</th> <th>Credito</th> <th>Saldo</th> <tr> <td><?php echo $linha['idconta']; ?> </td> <td><?php echo $linha['ref']; ?> </td> <td><?php echo $linha['mes']; ?> </td> <td><?php echo $linha['ano']; ?> </td> <?php $anterior = $linha['saldo'] + $linha['debito'] - $linha['credito']; ?> <td><?php echo formata_dinheiro($anterior); ?> </td> <td><?php echo formata_dinheiro($linha['debito']); ?> </td> <td><?php echo formata_dinheiro($linha['credito']); ?> </td> <td><?php echo formata_dinheiro($linha['saldo']); ?> </td> </tr> </table> <?php } ?> == desta forma está retornando corretamente == Já dentro da função não retorna. Os dados de conexão da função estão corretos porque outras funções já estão retornando os dados. =========================== função saldo anterior ======================================================== // FUNÇÃO PARA RETORNAR OS SALDO ANTERIOR, ENTRADAS, SAIDAS E SALDO ATUAL DO MÊS E ANO SELECIONADOS public function dados_saldo($idconta, $mes_hoje, $ano_hoje ) { try { $stmt = $this->conn->prepare("SELECT idconta, DATE_FORMAT(datamov,'%m/%Y') AS data, DATE_FORMAT(datamov,'%m') AS mes, DATE_FORMAT(datamov,'%Y') AS ano, SUM(IF(tipo = 0, valor, 0)) AS debito, SUM(IF(tipo = 1, valor, 0)) AS credito,(SELECT SUM(IF(tipo = 1, valor, -valor)) FROM lc_movimento AS L2 WHERE DATE_FORMAT(lc_movimento.datamov,'%Y%m') >=DATE_FORMAT(L2.datamov,'%Y%m') and idconta = lc_movimento.idconta) AS saldo FROM lc_movimento WHERE idconta =:contapd and mes=:mes and ano=:ano GROUP BY idconta, mes, ano ORDER BY ano, mes;"); $stmt->execute(array( ':contapd'=>$idconta, ':mes'=>$mes_hoje, ':ano'=>$ano_hoje)); $result=$stmt->fetch(PDO::FETCH_ASSOC); return $result['data']; } catch(PDOException $e) { echo $e->getMessage(); } } O que está dando errado?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.