Jump to content
Fórum Script Brasil
  • 0

Agrupamento de Dados


7master

Question

Olá pessoal, estou precisando da ajuda de vocês. 

É o seguinte, estou precisando fazer um agrumamento dos dados em uma table, tipo um relatório, porém estou com dúvida no posicionamento dos laços.

Estou seguindo a seguinte logica, mas não esta dando certo.

1º - Faço o select para pegar o registro que sera feito o agrupamento, e faço um laço para exibir o registro mas não fecho o laço ainda;

2º - Implemento o html do cabeçalho da tabela dando um echo no registro agrupado;

3º - Faço o select dos itens com a clausula where do registro agrupado, faço um laço para exibir o registro e implemento o html dos itens e fecho o laço do select dos itens;

4º - Fecho o laço do primeiro select; 

Anexei  duas imagens, uma chamada resultado final que seria o resultado que estou tentando fazer, e a imagem agrupamento php é a que está atualmente.

Segue o código:

<?php
    session_start();
    header("Content-Type: text/html; charset=utf8", true);
    include_once("conmysql.php");
    $sql= 'SET NAMES utf8';
    mysqli_query($con, $sql);
    $sql = 'SET character_set_connection=utf8';
    mysqli_query($con, $sql);
    $sql ='SET character_set_client=utf8';
    mysqli_query($con, $sql);
    $sql ='SET character_set_results=utf8';
    mysqli_query($con, $sql);
    
    $fatura = $_GET['fatura'];
    
    
    
    
    
     
?>
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="css/font-awesome.min.css">
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link href="css/passagens.css" rel="stylesheet" type="text/css"/>
    </head>
    <body>
        <a href="painel.php?link=6&NumFatura=<?php echo $fatura;?>" style="text-decoration: none; font-size: 12px; font-family: 'Arial'; background-color: #428BCA; color: #fff; padding: 5px" ><i class="fa fa-reply-all" aria-hidden="true"></i> Voltar</a>
        <a href="#" style="text-decoration: none; font-size: 12px; font-family: 'Arial'; background-color: #DDDDDD; color: #333; padding: 5px" onclick="window.print(); return false;"><i class="fa fa-print" aria-hidden="true"></i> Imprimir</a>
        <br><br>
        
        <table class="table table-bordered table-striped table-responsive">
            <div class="panel panel-default">
            <!-- Default panel contents -->
            <div class="panel-heading text-center"><h4>TITULO</h4></div>
            <div class="panel-body text-center">
                <h4><strong>OFÍCIO Nº: <?php echo $OFICIO_FORMATADO; ?></strong></h4>
            </div>
                
             
            <?php
              $sqlOficio = "SELECT S.OFICIO,                
                                concat(`s`.`SOL_ID`, concat('-', lpad(`s`.`NUMERO`, length(`s`.`NUMERO`), '0'), '/'), date_format(`s`.`DATA_CAD`, '%Y')) AS OFICIO_FORMATADO     
                            FROM  SOLICITACOES S

                            WHERE 
                              S.FAT_id = ".$fatura."
                            ORDER BY S.OFICIO ";
//       
              
              if ($resultado = mysqli_query($con, $sqlOficio)) {
                  
                $qtdeOficios = mysqli_num_rows($resultado);
                
                while ($dados_oficio = mysqli_fetch_assoc($resultado)) {
                    
              
              
              
            ?>
            
            
            
            <thead>
                <tr>
                    <th colspan="9">
                        Número do Ofício: <?php echo $dados_oficio['OFICIO_FORMATADO']?>
                    </th>
                </tr>
                
                
                
                <tr style="background: #999">
                    <th>
                        Data do Ofício
                    </th>
                    <th>
                        Nome do Passageiro
                    </th>
                    <th>
                        Trecho
                    </th>
                    <th>
                        Data Hora
                    </th>
                    <th>
                        Empresa
                    </th>
                    <th class="thdireita">
                        Valor Unitário
                    </th>
                    <th class="thdireita">
                        Taxa Adm
                    </th>
                    <th class="thdireita">
                        Taxa Emb
                    </th>
                    <th class="thdireita">
                        Valor Total
                    </th>
                </tr>
            </thead> 
            
            <tbody>
                <?php
                    
                        
                        $sql = "SELECT S.OFICIO,
                                    STATUS.STATUS, 
                                concat(`s`.`SOL_ID`, concat('-', lpad(`s`.`NUMERO`, length(`s`.`NUMERO`), '0'), '/'), date_format(`s`.`DATA_CAD`, '%Y')) AS OFICIO_FORMATADO,
                                    date_format(passagens.DATA_CAD, '%d/%m/%Y') AS DATA_CAD,
                                passagens.PASSAGEIRO,
                                PASSAGENS.CPF,
                                PASSAGENS.RG,
                                PASSAGENS.CARTAO_FIDELIDADE,    
                                PASSAGENS.DATA_EMBARQUE,
                                PASSAGENS.HORA_EMBARQUE,
                                E.EMP_FANTASIA,
                                CONCAT(date_format(passagens.DATA_EMBARQUE, '%d/%m/%Y'),' às ',  PASSAGENS.HORA_EMBARQUE) AS DTHR_EMBARQUE,
                                PASSAGENS.ORIGEM,
                                PASSAGENS.DESTINO,
                                CONCAT(PASSAGENS.ORIGEM,' <-> ',PASSAGENS.DESTINO) as TRECHO,
                                PASSAGENS.BILHETE, 
                                if(passagens.STATUS = 7, passagens.vr_unitario * 5/100, passagens.vr_unitario) as VR_UNITARIO, 
                                if(passagens.STATUS = 7,0, passagens.taxa_embarque) as TAXA_EMBARQUE,
                                PASSAGENS.TAXA_ADMIN,
                                (SELECT USU_NOME FROM USUARIOS WHERE USU_ID = PASSAGENS.SOLICITANTE_ID) AS SOLICITANTE,
                                if(passagens.STATUS = 7, passagens.taxa_admin + (passagens.vr_unitario * 5/100), passagens.vr_total) as VR_TOTAL,     
                                ORGAOS.ORG_RAZAO,   
                                usuarios.USU_NOME    
                            FROM  
                                    PASSAGENS 
                            INNER JOIN SOLICITACOES S ON (PASSAGENS.SOL_ID = S.SOL_ID)  
                            INNER JOIN EMPRESAS E ON (S.EMP_ID = E.EMP_ID)    
                            INNER JOIN ORGAOS ON (PASSAGENS.ORG_ID = ORGAOS.ORG_ID)
                            INNER JOIN USUARIOS ON (PASSAGENS.USU_ID = usuarios.USU_ID)
                            INNER JOIN STATUS ON(PASSAGENS.STATUS = STATUS.STATUS_ID)
                            WHERE 
                              S.OFICIO = ".$dados_oficio['OFICIO']."
                            GROUP BY S.OFICIO
                            ORDER BY S.OFICIO,PASSAGENS.ID "; 
//        
                ?>
                
            <?php
            if ($result = mysqli_query($con, $sql)) {

            while ($dados = mysqli_fetch_assoc($result)) {

                $QtdePassagens       = $result->num_rows;
                $TotalVrUnitario    +=  $dados['VR_UNITARIO'];
                $TotalTaxaEmbarque  +=  $dados['TAXA_EMBARQUE'];
                $TotalTaxaAdm       +=  $dados['TAXA_ADMIN'];
                $TotalValorTotal    +=  $dados['VR_TOTAL'];
            
            ?>
                <tr>
                    <td>
                        <?php echo $dados['DATA_CAD'] ?>
                    </td>
                    <td>
                        <?php echo $dados['PASSAGEIRO']; ?>
                    </td>
                    <td>
                        <?php echo $dados['TRECHO']; ?>
                    </td>
                    <td>
                        <?php echo $dados['DTHR_EMBARQUE']; ?>
                    </td>
                    <td>
                        <?php echo $dados['EMP_FANTASIA']; ?>
                    </td>
                    <td class="thdireita">
                        <?php echo number_format($dados['VR_UNITARIO'], 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita">
                        <?php echo number_format($dados['TAXA_ADMIN'], 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita">
                        <?php echo number_format($dados['TAXA_EMBARQUE'], 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita">
                        <?php echo number_format($dados['VR_TOTAL'], 2, ',', '.'); ?>&nbsp;
                    </td>
                </tr>
               <?php
        }
    }
                                ?> 
                
                
            </tbody>
            
            <tr style="background: #DFDFDF">
                    <td>
                        <strong>Qtde de Passagens: <?php echo $QtdePassagens; ?>  </strong>
                    </td>
                    <td>
                        
                    </td>
                    <td>
                        
                    </td>
                    <td>
                        
                    </td>
            
                    <td class="thdireita">
                        
                    </td>
                    <td class="thdireita fundoTotais">
                        <?php echo number_format($TotalVrUnitario, 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita fundoTotais">
                        <?php echo number_format($TotalTaxaEmbarque, 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita fundoTotais">
                        <?php echo number_format($TotalTaxaAdm, 2, ',', '.'); ?>&nbsp;
                    </td>
                    <td class="thdireita fundoTotais">
                        <?php echo number_format($TotalValorTotal, 2, ',', '.'); ?>&nbsp;
                    </td>
                </tr>
        <?php
                }
              }
        ?>        
        </table>
       
        <br><br>
        </div>
    </body>
</html>

 

agrupamento php.jpg

resultado final.jpg

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...