Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por Rubens Ferreira de Couto
      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?
    • Por Fábio BN
      Olá pessoal.

      Preciso fazer um Select Count, e um Setect Count com Group By numa tabela para pegar a quantidade total de registros.
      Exemplo:
       
      $estoque = "1" $var_total_geral=$pdo->prepare("select count(categoria) from loja_virtual WHERE estoque=:estoque"); $var_total_geral->bindValue(":estoque",$estoque); $var_total_geral->execute(); Depois preciso pegar e exibir a quantidade total  do código acima, porém tem algum erro acima e não sei qual comando usar para exibir a quantidade total.

      Depois preciso fazer outros select agrupado, onde eu preciso saber as quantidade de registros de cada categoria.
      Exemplo:
      Categoria 1 ( 40 Registros )
      Categoria 2 ( 32 Registros )
      Categoria 3 ( 18 Registros )

      Tentei isso abaixo:
      $var_quantidades=$pdo->prepare("select count(categoria) as total from loja_virtual WHERE estoque=:estoque group by categoria" ); $var_quantidades->bindValue(":estoque",$estoque); $var_quantidades->execute(); Como eu faço esse código acima funcionar e como exibo as quantidade agrupadas?

      Se alguém puder me ajudar, Obrigado!
       
      Fábio.
       
×

Informação importante

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