Agrupamento de Dados
Olá pessoal, estou precisando da ajuda de vcs.
É 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, ',', '.'); ?>
</td>
<td class="thdireita">
<?php echo number_format($dados['TAXA_ADMIN'], 2, ',', '.'); ?>
</td>
<td class="thdireita">
<?php echo number_format($dados['TAXA_EMBARQUE'], 2, ',', '.'); ?>
</td>
<td class="thdireita">
<?php echo number_format($dados['VR_TOTAL'], 2, ',', '.'); ?>
</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, ',', '.'); ?>
</td>
<td class="thdireita fundoTotais">
<?php echo number_format($TotalTaxaEmbarque, 2, ',', '.'); ?>
</td>
<td class="thdireita fundoTotais">
<?php echo number_format($TotalTaxaAdm, 2, ',', '.'); ?>
</td>
<td class="thdireita fundoTotais">
<?php echo number_format($TotalValorTotal, 2, ',', '.'); ?>
</td>
</tr>
<?php
}
}
?>
</table>
<br><br>
</div>
</body>
</html>

Resultado final
/applications/core/interface/imageproxy/imageproxy.php?img=http://7master.com.br/resultado%2520final.jpg&key=f872efc057b5762bbd4b1c79fc82d6f4c35092ed23fc041c3e3c58111b65d8ee" width="1000" />Discussão (0)
Carregando comentários...