PHP - Impressão de Produtos na Tela desordenado e repete
Caros amigos
Estou com um problema de impressão de produtos na tela que não consigo identificar o erro.
Preciso mostrar na Tela as resposta que cada produto teve dos seus fornecedores.
Abaixo mostro como está sendo impresso:
3 - Digit Mat. p/ Escritório CÓDIGO NOME
3.3
MATERIAL DE ESCRITÓRIO
140 - CANETA BIC - AZUL
3 - QuantMed Medicamentos e Mat. Hosp. Ltda
Qtde..: 20
Valor.: 1,10
Total.: 22,00
.
1 - ABC Med
Qtde..: 20
Valor.: 1,15
Total.: 23,00
.
2 - Airin Medical
Qtde..: 50
Valor.: 1,20
Total.: 60,00
.
131 - RÉGUA 30CM - ACRÍLICA
3 - QuantMed Medicamentos e Mat. Hosp. Ltda
Qtde..: 10
Valor.: 2,30
Total.: 23,00
.
2 - Airin Medical
Qtde..: 10
Valor.: 2,50
Total.: 25,00
.
1 - ABC Med
Qtde..: 10
Valor.: 3,20
Total.: 32,00
.
A PARTIR DESTE PONTO REPETE VÁRIAS VEZES, CONFORME SUAS RESPOSTAS
150 - ESTILETE MÉDIO
1 - ABC Med
Qtde..: 20
Valor.: 4,50
Total.: 90,00
.
101 - CADERNO UNIVERSITÁRIO 1-MAT
3 - QuantMed Medicamentos e Mat. Hosp. Ltda
Qtde..: 5
Valor.: 4,50
Total.: 22,50
.
150 - ESTILETE MÉDIO
3 - QuantMed Medicamentos e Mat. Hosp. Ltda
Qtde..: 20
Valor.: 4,70
Total.: 94,00
.
101 - CADERNO UNIVERSITÁRIO 1-MAT
2 - Airin Medical
Qtde..: 5
Valor.: 5,50
Total.: 27,50
.
150 - ESTILETE MÉDIO
2 - Airin Medical
Qtde..: 20
Valor.: 7,00
Total.: 140,00
.
101 - CADERNO UNIVERSITÁRIO 1-MAT
1 - ABC Med
Qtde..: 5
Valor.: 7,00
Total.: 35,00
A partir do 3º item, imprime várias vezes o mesmo produto, conforme suas respostas.
Abaixo o código fonte:
<?php function mostraResposta(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT t.cotaId, t.cotaNumero, t.cotaTitulo, t.cotaStatus, t.clienteId, c.clienteId, c.nome FROM cotacao t, clientes c WHERE c.clienteId = '$cliente' AND t.clienteId = '$cliente' AND t.cotaNumero = '$cotaNum' ORDER BY t.clienteId, t.cotaTitulo ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $clientes = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clientes != $clienteId) { if(!is_null($clientes)) { echo "</table>"; } // Fechando a tabela da ultima categoria impressa antes // de abrir a nova echo " <br/><br/>"; echo "<h1>{$clienteId} - {$nome}</h1>"; echo "<table>"; echo " <tr>"; echo " <th>CÓDIGO</th>"; echo " <th>NOME</th>"; echo " </tr>"; $clientes = $clienteId; } //Fecha IF echo " <tr>"; echo " <td><div class='cod-produto'>{$cotaNumero}</div></td>"; echo " <td><div class='nome-produto'>{$cotaTitulo}</div></td>"; echo " </tr>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço mostraRespostaForn(); //Chamo a função que retorna as respostas dos fornecedores por produto } //Fecha If $num }?><?php function mostraRespostaForn(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT r.cotaRespId, r.cotaItensId, r.clienteId, r.cotaNumero, r.codProdClie, r.cotaOferta, r.fornecedorId, r.cotaRespQtde, r.cotaRespVlr, r.cotaRespTotal, f.fornecedorId, f.nome, p.produtoId, p.codProdClie, p.produtoDescr, p.clienteId FROM cotacaoResposta r, fornecedores f, produto p WHERE r.clienteId = '$cliente' AND r.cotaNumero = '$cotaNum' AND r.fornecedorId = f.fornecedorId AND r.cotaOferta = '2' AND p.clienteId = '$cliente' AND r.codProdClie = p.codProdClie ORDER BY r.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $produto = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($produto != $codProdClie) { if(!is_null($produto)) { echo "</table>"; } // Fechando a tabela do último Produto impresso antes de abrir a nova echo " <br/>"; echo "<h2>{$codProdClie} - {$produtoDescr}</h2>"; echo "<table border='0' cellpadding='3' cellspacing='2' >"; $produto = $codProdClie; } echo " <tr style='color:#1C1C71; font-variant:small-caps; font:16px Arial, Helvetica, sans-serif; font-weight: bold;'>"; echo " <td><div class='fornec'>{$fornecedorId} - {$nome}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='no'>Qtde..: {$cotaRespQtde}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Valor.: {$cotaRespVlr}</div></td>"; echo " </tr>"; echo " <tr>"; echo " <td><div class='nme-produto'>Total.: {$cotaRespTotal}</div></td>"; echo " </tr>"; echo " <td>.</td>"; } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } }?>
Por favor, como faço para impedir que repita os Produtos mais de uma vez conforme as respostas ?
Grato,
Renato
Discussão (17)
Carregando comentários...