É 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><metacharset="UTF-8"><title></title><linkrel="stylesheet"href="css/font-awesome.min.css"><linkrel="stylesheet"href="css/bootstrap.min.css"><linkhref="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" ><iclass="fa fa-reply-all"aria-hidden="true"></i> Voltar</a><ahref="#"style="text-decoration: none; font-size:12px; font-family:'Arial'; background-color:#DDDDDD; color: #333; padding: 5px"onclick="window.print();returnfalse;"><iclass="fa fa-print"aria-hidden="true"></i> Imprimir</a><br><br><tableclass="table table-bordered table-striped table-responsive"><divclass="panel panel-default"><!-- Default panel contents --><divclass="panel-heading text-center"><h4>TITULO</h4></div><divclass="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><thcolspan="9">
Número do Ofício: <?php echo $dados_oficio['OFICIO_FORMATADO']?></th></tr><trstyle="background:#999"><th>
Data do Ofício
</th><th>
Nome do Passageiro
</th><th>
Trecho
</th><th>
Data Hora
</th><th>
Empresa
</th><thclass="thdireita">
Valor Unitário
</th><thclass="thdireita">
Taxa Adm
</th><thclass="thdireita">
Taxa Emb
</th><thclass="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><tdclass="thdireita"><?php echo number_format($dados['VR_UNITARIO'],2,',','.');?>
</td><tdclass="thdireita"><?php echo number_format($dados['TAXA_ADMIN'],2,',','.');?>
</td><tdclass="thdireita"><?php echo number_format($dados['TAXA_EMBARQUE'],2,',','.');?>
</td><tdclass="thdireita"><?php echo number_format($dados['VR_TOTAL'],2,',','.');?>
</td></tr><?php
}}?></tbody><trstyle="background:#DFDFDF"><td><strong>Qtde de Passagens: <?php echo $QtdePassagens;?></strong></td><td></td><td></td><td></td><tdclass="thdireita"></td><tdclass="thdireita fundoTotais"><?php echo number_format($TotalVrUnitario,2,',','.');?>
</td><tdclass="thdireita fundoTotais"><?php echo number_format($TotalTaxaEmbarque,2,',','.');?>
</td><tdclass="thdireita fundoTotais"><?php echo number_format($TotalTaxaAdm,2,',','.');?>
</td><tdclass="thdireita fundoTotais"><?php echo number_format($TotalValorTotal,2,',','.');?>
</td></tr><?php
}}?></table><br><br></div></body></html>
Pergunta
7master
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:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.