Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal alguém pode me ajudar estou com uma duvida, espero que vocês consigam me ajudar,
Faço uma busca no banco de dados com mysql, depois faço um laço de repetição foreach e pego os dados do banco e jogo em uma tabel,
gostaria de que um campo desse laço se repetisse varias vezes.
No banco ele pegas as informações de nota fiscal, cliente,nome do cliente e a soma das notas por um período de tempo,
gostaria que repetisse esse período, que no caso é um ano de janeiro a dezembro.
segue o codigo.
</form>
<?php
$dataIncio = $_POST['data-ini'];
$dataFim = $_POST['data-fim'];
$dataIncio = date('d/m/Y', strtotime($dataIncio));
$dataFim = date('d/m/Y', strtotime($dataFim));
$buscaNotas = $db->prepare("select
a.empresa,
a.cliente,
b.nom_cliente,
e.cod_uni_feder,
d.cod_repres,
b.cod_tip_cli,
count(a.nota_fiscal) as QTD_MES
from fat_nf_mestre a
join clientes b on (b.cod_cliente = a.cliente)
join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal)
join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido)
join cidades e on (e.cod_cidade = b.cod_cidade)
where a.empresa = '10'
and dat_hor_emissao between EXTEND(MDY(01,01,2019)) and EXTEND(MDY(01,30,2019)) // esse é o campo que gostaria que repetisse a data está ///01/01/2019 a 01/30/2019 gostaria de um jeito para mudar 01/02//2019 a 30/02/2019 assim por diante.
and d.cod_tip_carteira = '1'
--and b.nom_cliente = 'MAGAZINE LUIZA S/A'
--and b.cod_cliente = '047960950075482'
and c.seq_item_nf = '1'
and a.sit_nota_fiscal <> 'C'
group by 1,2,3,4,5,6");
$buscaNotas->execute();
$linha = $buscaNotas->fetchAll(PDO::FETCH_ASSOC);
?>
<table border="1px solid black" class="table col-sm-12 table-striped table-hover">
<thead class="thead-dark ">
<tr>
<th>Empresa</th>
<th>Cliente</th>
<th>Nome do cliente</th>
<th>Uni_Feder</th>
<th>Codigo Representante</th>
<th>Cod_tipo_cli</th>
<th>janeiro</th>// aqui eu faria janeiro, feveiro, março, abril.....até dezembro
<th>Fevereiro</th>
</tr>
</thead>
<?php
foreach ($linha as $listar) { ?>
<tr>
<td><?= $listar['empresa'];?></td>
<td><?=$listar['cliente']; ?></td>
<td><?=$listar['nom_cliente']; ?></td>
<td><?=$listar['cod_uni_feder']; ?></td>
<td><?=$listar['cod_repres']; ?></td>
<td><?=$listar['cod_tip_cli']; ?></td>
<td><?=$listar['qtd_mes']; ?></td> // aqui é a saida onde queria que saisse o restante dos dados.
</tr>
<?php } ?>
</table>
<?php>
Citar
Quase isso mais é para o mês ficar do lado como a imagem abaixo.
depois vem fevereiro , abril....
and dat_hor_emissao between EXTEND(MDY(01,01,2019)) and EXTEND(MDY(01,30,2019)) pegar essa parte da ficar repetindo fevereiro
$buscaNotas = $db->prepare("select
a.empresa,
a.cliente,
b.nom_cliente,
e.cod_uni_feder,
d.cod_repres,
b.cod_tip_cli,
count(a.nota_fiscal) as QTD_MES
from fat_nf_mestre a
join clientes b on (b.cod_cliente = a.cliente)
join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal)
join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido)
join cidades e on (e.cod_cidade = b.cod_cidade)
where a.empresa = '10'
and dat_hor_emissao between EXTEND(MDY(01,01,2019)) and EXTEND(MDY(01,30,2019)) // esse é o campo que gostaria que repetisse a data está ///01/01/2019 a 01/30/2019 gostaria de um jeito para mudar 01/02//2019 a 30/02/2019 assim por diante.
and d.cod_tip_carteira = '1'
--and b.nom_cliente = 'MAGAZINE LUIZA S/A'
--and b.cod_cliente = '047960950075482'
and c.seq_item_nf = '1'
and a.sit_nota_fiscal <> 'C'
group by 1,2,3,4,5,6");
$buscaNotas->execute();
$linha = $buscaNotas->fetchAll(PDO::FETCH_ASSOC);
Pedro Batista Lopes
Se você quer que apareça a LINHA descritiva com o Mês diferente para cada mês
Empresa Cliente Nome do cliente Uni_Feder Codigo Repres Cod_tipo_cli janeiro
Open 1 Open Source SP 12345 1 R$ 1.000.000,00
Close 2 Stack House RJ 15687 1 R$ 890.000,00
Fevereiro
Open 1 Open Source SP 12345 1 R$ 9.164.498,68
Close 2 Stack House RJ 15687 1 R$ 3.515.782,23
DB2 3 DB2 Enterprise GO 468246 2 R$ 115.782,23
Se você quer algo parecido com o resultado acima, você precisa ter uma variável de controle para o periodo e uma para não imprimir a linha do cabeçalho.
O código fica como abaixo: