Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dammy

[RESOLVIDO] divisão de while()

Recommended Posts

Olá a todos !

 

Estou com um problema com while, acho que é coisa simples, mas, poxa, realmente não estou conseguindo enxergar a solução e é a primeira que preciso executar esse tipo de consulta.

 

Estou fazendo uma consulta no BD e está executando corretamente, o problema é que esta repetindo o código inteiro (lógico, está tudo dentro do while), repete o "título" para todos os itens da Nota Fiscal.

 

Podem, por favor, me ajudar ?

 

Desde já agradeço muito !!

 

Abração,

Dammy

 

$query4 = "SELECT no.Not_notafiscal, no.Not_emissao, no.Not_cliente, no.Not_valornota, no.Not_pedido, ca.Cli_nome, it.Ino_produto, it.Ino_prunitario, it.Ino_qtde, it.Ino_valortotal, pr.Pro_descricao FROM DN_Notas no, DN_Cadastro ca, DN_ItensNota it, DN_Produtos pr WHERE no.Not_representante = '$vendedor' AND no.Not_notafiscal = it.Ino_nota AND it.Ino_produto = pr.Pro_codigo";

 

$res4 = mysql_query($query4);

 

while($ret4 = mysql_fetch_array($res4)){

$nf = $ret4['Not_notafiscal']; //titulo

$dt = $ret4['Not_emissao']; //titulo

$clicd = $ret4['Not_cliente']; //titulo

$clinm = $ret4['Cli_nome']; //titulo

$vl = $ret4['Not_valornota']; //titulo

$pd = $ret4['Not_pedido']; //itens

$procd = $ret4['Ino_produto']; //itens

$pronm = $ret4['Pro_descricao']; //itens

$prun = $ret4['Ino_prunitario']; //itens

$qtde = $ret4['Ino_qtde']; //itens

$prtt = $ret4['Ino_valortotal']; //itens

 

?>

<tr> (essas 2 primeiras <tr> devem ser exibidas só uma vez pra cada grupo de ítens, é como se o while parasse aqui)

<td class="bla" width=17%><b>Nota Fiscal:<br><?php echo $nf;?></b></td>

<td class="bla" width=17%><b>Emissão:<br></b> <?php echo $dt;?></td>

<td class="bla" width=45%><b>Cliente:<br></b> <?php echo $clicd.' - '.$clinm;?></td>

<td class="bla" width=19% align='left'><b>Valor</b>:<br><?php echo $vl;?></td>

</tr>

<tr align='center'>

<td class="bla" width=3%></td>

<td class="bla" width=7% align='left'><b>Pedido</b></td>

<td class="bla" width=50% align='left'><b>Produto</b></td>

<td class="bla" width=10%><b>Vl. Unitário</b></td>

<td class="bla" width=9%><b>Qtde</b></td>

<td class="bla" width=13%><b>Vl. Total</b></td>

</tr>

<tr align='center' (essa <tr> deve se repetir quantas vezes necessário para listar todos os ítens da nota, é como se aqui houvesse um segundo while dentro do primeiro)

<td class="bla" width=3%></td>

<td class="bla" width=7% align='left'><?php echo $pd;?></td>

<td class="bla" width=50% align='left'><?php echo $procd.' - '.$pronm;?></td>

<td class="bla" width=10%><?php echo $prun;?></td>

<td class="bla" width=9%><?php echo $qtde;?></td>

<td class="bla" width=13%><?php echo $prtt;?></td>

</tr>

<?php } /*fecha while*/ ?>

POr favor, alguém pode me dar alguma idéia de como resolver isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi..bom faça a primeira busca e então o primeiro while, depois dentro do primeiro while faz uma nova busca buscando os ítens da nota de acordo com o resultado da primeira busca...tendeu??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei colocar 2 while mas lista o titulo uma vez só (ao invés de listar os 2 titulos que atendem à consulta) e embaixo está listando várias vezes tudo que existe no BD.

Sei que é dose, mas se alguém puder avaliar o código pra ver se acha o erro, agradeço muito.

$query4 = "SELECT no.Not_notafiscal, no.Not_emissao, no.Not_cliente, no.Not_valornota, it.Ino_nota, ca.Cli_nome FROM DN_Notas no, DN_Cadastro ca, DN_ItensNota it WHERE

no.Not_representante = '$vendedor'

AND no.Not_emitida = 'S'";

$res4 = mysql_query($query4);

$ret = mysql_num_rows($res4);

 

while($ret4 = mysql_fetch_array($res4)){

$nf = $ret4['Not_notafiscal'];

$dt = $ret4['Not_emissao'];

$clicd = $ret4['Not_cliente'];

$clinm = $ret4['Cli_nome'];

$vl = $ret4['Not_valornota'];

?>

<tr>

<td class="bla" width=17%><b>Nota Fiscal:<br><?php echo $nf;?></b></td>

<td class="bla" width=17%><b>Emissão:<br></b> <?php echo $dt;?></td>

<td class="bla" width=45%><b>Cliente:<br></b> <?php echo $clicd.' - '.$clinm;?></td>

<td class="bla" width=19% align='left'><b>Valor</b>:<br><?php echo $vl;?></td>

</tr>

<tr align='center'>

<td class="bla" width=3%></td>

<td class="bla" width=7% align='left'><b>Pedido</b></td>

<td class="bla" width=50% align='left'><b>Produto</b></td>

<td class="bla" width=10%><b>Vl. Unitário</b></td>

<td class="bla" width=9%><b>Qtde</b></td>

<td class="bla" width=13%><b>Vl. Total</b></td>

</tr>

<?php

$query5 = "SELECT no.Not_pedido, it.Ino_produto, it.Ino_prunitario, it.Ino_qtde, it.Ino_valortotal, pr.Pro_descricao FROM DN_Notas no, DN_ItensNota it, DN_Produtos pr WHERE

no.Not_representante = '$vendedor' AND no.Not_emitida = 'S' AND it.Ino_nota = '$nf'"; // cada item da tabela DN_itensnota correponde a uma linha e cada linha tem o campo Ino_nota que é o numero da nota fiscal na tabela DN_Notas.

$res5 = mysql_query($query5);

 

while($ret5 = mysql_fetch_array($res5)){

$pd = $ret5['Not_pedido'];

$procd = $ret5['Ino_produto'];

$pronm = $ret5['Pro_descricao'];

$prun = $ret5['Ino_prunitario'];

$qtde = $ret5['Ino_qtde'];

$prtt = $ret5['Ino_valortotal'];

?>

<tr align='center'>

<td class="bla" width=3%></td>

<td class="bla" width=7% align='left'><?php echo $pd;?></td>

<td class="bla" width=50% align='left'><?php echo $procd.' - '.$pronm;?></td>

<td class="bla" width=10%><?php echo $prun;?></td>

<td class="bla" width=9%><?php echo $qtde;?></td>

<td class="bla" width=13%><?php echo $prtt;?></td>

</tr>

<?php } /* fecha o segundo while*/?>

</table>

<?php } /*fecha while*/ ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, alguém me ajuda?Ainda não consegui resolver...Está listando certinho cada nota, só que repete várias vezes... se tiver 9 produtos na ota, ele lista corretamente, só que repete 9 vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.