Ir para conteúdo
Fórum Script Brasil

rafaelduarte

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por rafaelduarte

  1. @wash Acredito ter conseguido a solução:

    Contém com a ajuda de um amigo desenvolvedor web;

    A lógica foi assim:

    Uma nova consulta SQL a cada nova linha de Membros; A cada linha de Membros eu tenho um 'COD_MEMBRO', Então esse resultado eu uso para fazer a nova QUERY
    Em nova SQL eu consultei as frequências de um único membro; e Mandei imprimir com o laço de repetição limitando na quantidade de DATAS (Colunas) disponíveis;

    SELECT f.data, mf.presenca, mf.cod_membro FROM frequencia as f inner join membro_frequencia as mf on f.cod_frequencia = mf.cod_frequencia and mf.cod_membro = $VARIAVEL and MONTH(f.data) = 05
     
    Resultado da Variavel -> COD_MEMBRO = 1
    data presenca cod_membro  
    2016-05-04 1 1
    2016-05-03 1 1
    2016-05-05 1 1

    CÓDIGO:

          <table width="600" border="1" cellspacing="5" bgcolor="#FFFFFF">
            <tr align="center">
              <td width="400" align="center">Nome:</td>
             
              <!-- Repetição para aparecer todas as datas que contém frequência de uma determinada célula-->
              <!-- Imprimi a data na respectiva linha -->
             <?php do{?>
              <td align="center"><?php echo date('d/m/Y',strtotime($row_rs_datas_frequencia['data'])); ?></td>
              <?php }while($row_rs_datas_frequencia = mysql_fetch_assoc($rs_datas_frequencia))?>
              <td width="200" align="center">Total Presença Membros Mensal</td>
              <td width="200" align="center">Total Falta Membros Mensal</td>
            </tr>  
            <!-- Laço para as linhas da Tabela --> 
                  <?php do{ ?>
            <tr align="center">       
            <!-- Imprimi o membro na respectiva linha -->
              <td width="400" align="center"><?php echo $row_rs_membros['nome']?></td>
              
    		  <?php $countP=; $countF=; $count=;?> 
              
              <?php
    		  mysql_select_db($database_ChurchApp, $ChurchApp);
    $query_rs_linha_membro = sprintf("SELECT f.data, mf.presenca, mf.cod_membro FROM frequencia as f inner join membro_frequencia as mf on f.cod_frequencia = mf.cod_frequencia and mf.cod_membro = %s and MONTH(f.data) = 05", GetSQLValueString($row_rs_membros['cod_membro'], "int"));
    $rs_linha_membro = mysql_query($query_rs_linha_membro, $ChurchApp) or die(mysql_error());
    $row_rs_linha_membro = mysql_fetch_assoc($rs_linha_membro);
    $totalRows_rs_linha_membro = mysql_num_rows($rs_linha_membro);  
    		   ?>
               
               <!-- Imprimi a presença do membro na respectiva linha, com Base na consulta feito a partir do COD_MEMBRO (do laço de repetição) -->
               <?php do{?>
                <td align="center"> <?php //echo "CodMembro:".$row_rs_linha_membro['cod_membro']." Data:".$row_rs_linha_membro['data']." Presen:"; ?>
    			<?php if($row_rs_linha_membro['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} ?></td>          
            <?php $row_rs_linha_membro = mysql_fetch_assoc($rs_linha_membro); ?>
            
            <!-- Imprimi a presença do membro na respectiva linha, com o limite de DATAS disponíveis -->
    		   <?php $count++; }while($count<$totalRows_rs_datas_frequencia)?>  
                   
              <td align="center"><?php echo $countP ?></td>
              <td align="center"><?php echo $countF ?></td>
            </tr>
            <!-- (Repetição) Voltar a imprimir as linhas enquanto tiver membros -->
    			<?php }while($row_rs_membros = mysql_fetch_assoc($rs_membros)) ?>
            </table>

    Resultado Tabela em Anexo:
     

    Desculpem, esqueci de anexar as imagens do resultado;

    6.png

    7.png

  2. @wash Essa parte eu consegui de boa;

    Meu problema específico é imprimir as colunas respectivas as datas; Mesmo se eu fizer um laço de repetição ele apenas vai Replicar a 1ª coluna de valores;

            <!-- Imprimi a quantidade de alunos e as frequências -->
              <td width="400" align="center"><?php echo $row_rs_membros['nome']; ?></td>          
              <!-- **********************************************************************
              ****************************************************************************
              AQUI ESTÁ O PROBLEMA, NÃO ESTOU CONSEGUINDO FAZER APARECER A PRESENÇA DAS OUTRAS DATAS -->
    		  <?php $countP=; $countF=;?> 
              
                <td align="center"> <?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} $row_rs_relatorio = mysql_fetch_array($rs_relatorio);?></td>     
                <td align="center"> <?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} $row_rs_relatorio = mysql_fetch_array($rs_relatorio);?></td>  
                <td align="center"> <?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} $row_rs_relatorio = mysql_fetch_array($rs_relatorio);?></td>
                             
              <td align="center"><?php echo $countP ?></td>
              <td align="center"><?php echo $countF ?></td>
            </tr>
    			<?php }while($row_rs_membros = mysql_fetch_assoc($rs_membros)) ?>
            </table>

    Olha como ficou agora:
    Só que as outras datas estão apenas repetindo a primeira, teria que saber como eu faço para elas não repetirem e pegar as frequências das respectivas datas.

    5.png

    @lowys Puxa cara, não sabia disso. Vou me atentar para corrigir essa falha;

    Você tem uma indicação do que usar para substituir a extensão Mysql_ (Site, apostilas, vídeo-aula etc.) ?
    De qualquer forma, obrigado pela dica vou pesquisar mais sobre o assunto.

  3. @wash Obrigado por responder!

    Na verdade meu problema está em CRIAR/ARRUMAR a tabela para apresentar os dados salvos no banco de dados;

    Segue o trecho onde está a variável $rs_relatório;

    $colname_rs_relatorio = "-1";
    if (isset($_GET['cod_celula'])) {
      $colname_rs_relatorio = $_GET['cod_celula'];
    }
    mysql_select_db($database_ChurchApp, $ChurchApp);
    $query_rs_relatorio = sprintf("SELECT membro.nome, frequencia.cod_frequencia, frequencia.data, membro_frequencia.presenca FROM membro, frequencia, membro_frequencia WHERE frequencia.cod_celula = %s AND membro.cod_membro = membro_frequencia.cod_membro AND  MONTH(frequencia.data) = 05 AND membro_frequencia.cod_frequencia = frequencia.cod_frequencia", GetSQLValueString($colname_rs_relatorio, "int"));
    $rs_relatorio = mysql_query($query_rs_relatorio, $ChurchApp) or die(mysql_error());
    $row_rs_relatorio = mysql_fetch_assoc($rs_relatorio);
    
    if (isset($_GET['totalRows_rs_relatorio'])) {
      $totalRows_rs_relatorio = $_GET['totalRows_rs_relatorio'];
    } else {
      $all_rs_relatorio = mysql_query($query_rs_relatorio);
      $totalRows_rs_relatorio = mysql_num_rows($all_rs_relatorio);
    }


    Minha tabela tinha que ficar exatamente como está o exemplo via Excel;

    Vou fazer uma consulta do banco de dados e postar aqui;

    SELECT * FROM `membro_frequencia`

    cod_membro presenca cod_frequencia  
    1 1 1
    5 1 1
    11 1 1
    120 1 1
    125 1 1
    131 1
    1 1 2
    5 1 2
    11 1 2
    120 2
    125 2
    131 2

    ... (E por ai vai)

     

    O que não estou conseguindo fazer é aparacer essas presenças em formato de tabela;

    Exemplo:
    Nome - Data1 - Data2 - Data 3 ...
    Fulano -   P    -     P     -    F 
    Ciclano -  P    -     F      -    P
    Beltrano- F    -      P     -    F

    As soma é o próximo passo...

  4. Olá amigos, gostaria de uma grande ajuda de vocês;
    Sou estudante e iniciante de programação Web e estou com uma dúvida há dias, já pesquisei em vários fóruns, mas não consegui achar uma solução para o meu problema... Então resolvi pedir a ajuda de vocês com mais experiência que eu.

    <table width="600" border="1" cellspacing="5" bgcolor="#FFFFFF">
            <tr align="center">
              <td width="400" align="center">Nome:</td>
              <!-- Repetição para aparecer todas as datas que contém frequência de uma determinada célula-->
             <?php do{?>
              <td align="center"><?php echo date('d/m/Y',strtotime($row_rs_datas_frequencia['data'])); ?></td>
              <?php }while($row_rs_datas_frequencia = mysql_fetch_assoc($rs_datas_frequencia))?>
              <td width="200" align="center">Total Presença Membros Mensal</td>
              <td width="200" align="center">Total Falta Membros Mensal</td>
            </tr>   
                  <?php do{ ?>
            <tr align="center">       
            <!-- Imprimi a quantidade de alunos e as frequências -->
              <td width="400" align="center"><?php echo $row_rs_membros['nome']; ?></td>          
              <!-- **********************************************************************
              ****************************************************************************
              AQUI ESTÁ O PROBLEMA, NÃO ESTOU CONSEGUINDO FAZER APARECER A PRESENÇA DAS OUTRAS DATAS -->
    		  <?php $countP=; $countF=;?> 
                <td align="center"> <?php if($row_rs_relatorio['presenca']>=1){ $countP++; echo "P"; }else{ $countF++; echo "F";} $row_rs_relatorio = mysql_fetch_array($rs_relatorio);?></td>     
              <td align="center"><?php echo $countP ?></td>
              <td align="center"><?php echo $countF ?></td>
            </tr>
    			<?php }while($row_rs_membros = mysql_fetch_assoc($rs_membros)) ?>
            </table>

    Resultado:

    OBS: No meu banco já estou conseguindo preencher as frequências normalmente, agora estou no passo de gerar os relatórios das mesmas.


    Resultado Esperado:

    Meu objetivo era fazer um relatório mensal de frequência como este no Excel:

    Meus Banco de Dados:

    Ø  MEMBRO

    ·         Cod_membro

    ·         Nome

    ·         ... (informações em gerais)

    ·         Cod_celula

    Ø  Célula

    ·         Cod_celula

    ·         Nome

    Ø  Frequência

    ·         Cod_frequencia

    ·         Data

    ·         ...(Informações em gerais)

    ·         Cod_celula

    Ø  Membro_Frequência

    ·         Cod_membro

    ·         Presença (0=F;1=P)

    ·         Cod_frequencia

     

    (Tentei resumir a dúvida o máximo que pude, desculpe pelo tamanho do POST)

    Consultas:

    mysql_select_db($database_ChurchApp, $ChurchApp);
    $query_rs_membros = sprintf("SELECT * FROM membro WHERE cod_celula = %s", GetSQLValueString($colname_rs_membros, "int"));
    $rs_membros = mysql_query($query_rs_membros, $ChurchApp) or die(mysql_error());
    $row_rs_membros = mysql_fetch_assoc($rs_membros);
    $totalRows_rs_membros = mysql_num_rows($rs_membros);
    
    mysql_select_db($database_ChurchApp, $ChurchApp);
    $query_rs_relatorio = sprintf("SELECT membro.nome, frequencia.cod_frequencia, frequencia.data, membro_frequencia.presenca FROM membro,
     frequencia, membro_frequencia WHERE frequencia.cod_celula = %s AND membro.cod_membro = membro_frequencia.cod_membro AND
      MONTH(frequencia.data) = 05 AND membro_frequencia.cod_frequencia = frequencia.cod_frequencia",
     GetSQLValueString($colname_rs_relatorio, "int"));
    
    $query_rs_datas_frequencia = sprintf("SELECT frequencia.data FROM frequencia WHERE cod_celula = %s and MONTH(frequencia.data) = 05",
     GetSQLValueString($colname_rs_datas_frequencia, "int"));

     

    2.png

    3.png

×
×
  • Criar Novo...