dammy 0 Denunciar post Postado Julho 16, 2007 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
Otata 4 Denunciar post Postado Julho 16, 2007 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
dammy 0 Denunciar post Postado Julho 16, 2007 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
dammy 0 Denunciar post Postado Julho 18, 2007 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
Anderson Mello 3 Denunciar post Postado Julho 18, 2007 dammy, experimente adicionar " GROUP BY no.Not_notafiscal" no final da sua query ;)[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites
dammy 0 Denunciar post Postado Julho 19, 2007 deu certo ! deu certo ! deu certo! Nossa... super obrigada, Anderson. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Quebrei tanto a cabeça e era tão simples... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Valeu mesmo ! Abraços, Dammy Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Mello 3 Denunciar post Postado Julho 19, 2007 De nada, dammy ;)[]sAnderson Mello Compartilhar este post Link para o post Compartilhar em outros sites