Remazela 6 Denunciar post Postado Janeiro 26, 2017 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 Compartilhar este post Link para o post Compartilhar em outros sites
washalbano 54 Denunciar post Postado Janeiro 26, 2017 Olá! Sugiro que use um pdo fetch all e veja qual é o resultado obtido do banco, antes de gerar qualquer tabela html. Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 27, 2017 Caro amigo Fiz conforme sua orientação e não tive sucesso. poderia me ajudar com um exemplo, estou usando 3 tabelas. Produto/Fornecedor/CotacaoResposta Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Janeiro 27, 2017 A consulta no banco deve estar vindo repetida já. Copie e cole sua query no banco e veja se retorna a mesma coisa! Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Janeiro 27, 2017 Utilize GROUP BY e agrupe pelo ID do produto. http://www.w3schools.com/sql/sql_groupby.asp .....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.codProdClieGROUP BY p.produtoId ORDER BY r.cotaRespVlr ASC" Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 27, 2017 Caros amigos Conforme orientação acrescentei o GROUP BY, deu certo em partes, conforme abaixo trouxe os seguintes resultados: 140 - CANETA BIC - AZUL 2 - Airin Medical Qtde..: 50 Valor.: 1,20 Total.: 60,00 . 131 - RÉGUA 30CM - ACRÍLICA 2 - Airin Medical Qtde..: 10 Valor.: 2,50 Total.: 25,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 =========================================================================================== Cada Produto tem mais de um Fornecedor que respondeu. Conforme mostrei acima, o problema parte do 3.item para frente, não entendo porque não agrupa os fornecedores que respondeu a resposta para o produto. OBSERVAÇÃO: cada produto existe 3 resposta, como faço para relacionar 3 ou mais tabelas, se esse for o erro. Por favor, não consigo mais entender e achar o erro, que está me deixando louco. Grato, Renato 140 - CANETA BIC - AZUL 2 - Airin Medical Qtde..: 50 Valor.: 1,20 Total.: 60,00 . 131 - RÉGUA 30CM - ACRÍLICA 2 - Airin Medical Qtde..: 10 Valor.: 2,50 Total.: 25,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 Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Janeiro 27, 2017 Como você quer que os produtos sejam exibidos? Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 27, 2017 Desta forma: 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 150 - ESTILETE MÉDIO 1 - ABC Med Qtde..: 20 Valor.: 4,50 Total.: 90,00 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 20 Valor.: 4,70 Total.: 94,00 2 - Airin Medical Qtde..: 20 Valor.: 7,00 Total.: 140,00 101 - CADERNO UNIVERSITÁRIO 1-MAT 3 - QuantMed Medicamentos e Mat. Hosp. Ltda Qtde..: 5 Valor.: 4,50 Total.: 22,50 2 - Airin Medical Qtde..: 5 Valor.: 5,50 Total.: 27,50 1 - ABC Med Qtde..: 5 Valor.: 7,00 Total.: 35,00 Preciso que seja desta forma acima. Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 28, 2017 Caros amigos Por favor, Em Nome do Senhor Jesus, me perdoa por recorrer ao auxílio dos amigos, mas infelizmente estou montando uma Lista(Resposta) na Tela que está me deixando LOUCO. Preciso mostrar o seguinte: PRODUTO X resposta 3 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 1 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,10 resposta 3 - vlr: R$ 0,30 resposta 2 - vlr: R$ 0,50 PRODUTO Z resposta 2 - vlr: R$ 0,15 resposta 1 - vlr: R$ 0,30 resposta 3 - vlr: R$ 0,40 Fiz várias tentativas e cheguei a um suposto resultado +/- favorável. Usei a opção de GROUP BY, agrupou todos os fornecedores, mas infelizmente trás na tela os mesmo valores e quantidade. O GROUP BY, trás assim: PRODUTO X resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Y resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 PRODUTO Z resposta 1 - vlr: R$ 0,01 resposta 2 - vlr: R$ 0,02 resposta 3 - vlr: R$ 0,03 Obs.: cada resposta tem quantidade e valores distintos. Abaixo o código que estou utilizando: //Aqui faço o cabeçalho do Titulo //códigoEmpresa - descriçãoEmpresa <?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(); $clie = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($clie != $clienteId) { if(!is_null($clie)) { 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>"; $clie = $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 } //Fecha If $num } ?> //Aqui trago todos os produtos que a empresa quiz cotar //códigoProduto - descriçãoProduto <?php function mostraRespostaItens(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT i.cotaItensId, i.cotaNumImport, i.codProdClie, i.cotaQtde, i.cotaComenta, i.cotaVerTxt, i.cotaId, i.clienteId, i.cotaNumero, p.produtoId, p.codProdClie, p.produtoDescr, p.clienteId FROM cotacaoItens i, produto p WHERE i.codProdClie = p.codProdClie AND i.cotaNumero = '$cotaNum' AND i.clienteId = p.clienteId ORDER BY i.cotaNumero ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $codProdClie) { if(!is_null($prod)) { 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' >"; //Chamo as respostas dos fornecedores mostraRespFornec(); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } ?> //Aqui trago todos os fornecedores que responderam, com seus valores e quantidade //qdo agrupo os fornecedores, traz sempre os mesmo valores e quantidade <?php function mostraRespFornec(){ include"Connections/config.php"; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT r.cotaRespId, r.cotaItensId, r.cotaNumero, r.codProdClie, r.cotaOferta, r.fornecedorId, r.cotaRespQtde, r.cotaRespVlr, r.cotaRespTotal, f.fornecedorId, f.nome, i.cotaItensId, i.cotaNumero, i.codProdClie FROM cotacaoResposta r, fornecedores f, cotacaoItens i WHERE i.codProdClie = r.codProdClie AND r.cotaOferta = '2' AND r.fornecedorId = f.fornecedorId GROUP BY f.fornecedorId ORDER BY r.cotaRespVlr ASC"; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if($num > 0) { while($row = $stmt->fetch($prod)){ //while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if($prod != $fornecedorId) { if(!is_null($prod)) { echo "</table>"; } 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, me ajuda. Grato, Renato PRODUTO X resposta 1 resposta 1 resposta 1 Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Janeiro 29, 2017 Vamos lá então, você tem consulta demais, apenas uma resolve! Comece a refatoração e faça a associação das tabelas pelos comentarios, pois é ela que vai gerar o looooooooooooooop, as demais entra como belongs To (n:m)http://softwareengineering.stackexchange.com/questions/152731/what-is-the-main-difference-between-has-many-and-belongs-to-relationship-in-mysqExemplo: SELECT ... FROM comentarios AS c LETF JOIN produtos as p ON ... RIGTH JOIN fornecedor as f. ON ... WHERE ... GROUP BY coluna1, coluna2 ORDER BY p.coluna, c.coluna ASC LIMIT ... Ao associar vai gerar o array, desta forma você sabera quais estão duplicando na query, é só agrupar! Group BY e Order BY você pode usar mais de uma coluna, mas tem que criar os indices no DB também para otimizar a consulta ja que são varias associações.Refaça e volte a postar. Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 29, 2017 Caro amigo Williams Vou testar e retornarei com o resultado. Apenas uma pergunta: devo efetuar a refatoração em todas, desde da primeira consulta ao Banco de Dados ? Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Janeiro 29, 2017 Exato! Unica coisa que você precisa é retornar o array <?php function mostraResposta() { include"Connections/config.php"; $sql = "SELECT ... FROM comentarios AS c LETF JOIN produtos as p ON ... RIGTH JOIN fornecedor as f. ON ... WHERE ... GROUP BY coluna1, coluna2 ORDER BY p.coluna, c.coluna ASC LIMIT ..."; $stmt = $conecta->prepare($sql); $stmt->execute(); if($stmt->rowCount() > 0) { return $stmt->fetch(PDO::FETCH_ASSOC); } return false; } Html você vai reaproveitar pra montar um só e dentro do laço, porem não tem a necessidade de ficar junto a função e nem pode, não é responsabilidade da função fazer tudo isso. A unica coisa é listar os dados, tendo ciência disso. basta usar a função em qualquer canto depois. foreach (mostraResposta() as $key => $value) { # code html } Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 30, 2017 Caro amigo Williams Por favor, me perdoa por recorrer a sua ajuda novamente, infelizmente estou com dúvidas em relação a parte que cita: $sql = "SELECT ... FROM comentarios AS c LETF JOIN produtos as p ON ... RIGTH JOIN fornecedor as f. ON ... WHERE ... GROUP BY coluna1, coluna2 ORDER BY p.coluna, c.coluna ASC LIMIT ..."; Ainda não consegui entender, fazer relacionamento com 2 tabelas eu consigo, mas quando tem mais de 3 tabelas faço a maior confusão. Tenho a seguinte noção: o cliente tem Cotação X -------------- a Cotação X tem Produtos Y --------------------------------- os Produtos Y tem Respostas Z ------------------------------------------------------- as Respostas Z tem Fornecedores K Por favor, pode me ajudar na parte dos SELECT e do JOIN ? Abaixo coloquei como estão minha tabela: CREATE TABLE IF NOT EXISTS `cotacao` ( `cotaId` int(11) NOT NULL AUTO_INCREMENT, `cotaNumero` varchar(255) DEFAULT NULL, `cotaDtInicio` date NULL DEFAULT NULL, `cotaHrsInicio` time NULL DEFAULT NULL, `cotaDtFim` date NULL DEFAULT NULL, `cotaHrsFim` time NULL DEFAULT NULL, `cotaTitulo` varchar(255) DEFAULT NULL, `cotaObserva` varchar(255) DEFAULT NULL, `cotaStatus` int(1) NOT NULL, `clienteId` varchar(11) DEFAULT NULL, `desc_categ` varchar(255) DEFAULT NULL, `desc_pgto` varchar(255) DEFAULT NULL, CREATE TABLE IF NOT EXISTS `cotacaoItens` ( `cotaItensId` int(11) NOT NULL AUTO_INCREMENT, `cotaNumImport` varchar(255) DEFAULT NULL, `codProdClie` varchar(255) DEFAULT NULL, `cotaQtde` varchar(255) DEFAULT NULL, `cotaComenta` varchar(255) DEFAULT NULL, `cotaVerTxt` varchar(1) DEFAULT NULL, `cotaId` varchar(11) DEFAULT NULL, `clienteId` varchar(11) DEFAULT NULL, `cotaNumero` varchar(255) DEFAULT NULL, CREATE TABLE IF NOT EXISTS `cotacaoResposta` ( `cotaRespId` int(11) NOT NULL AUTO_INCREMENT, `cotaRespQtde` varchar(255) DEFAULT NULL, `cotaRespVlr` varchar(255) DEFAULT NULL, `cotaRespTotal` varchar(255) DEFAULT NULL, `cotaRespMarca` varchar(255) DEFAULT NULL, `cotaRespObs` varchar(255) DEFAULT NULL, `cotaRespEntrega` varchar(255) DEFAULT NULL, `cotaRespPgto` varchar(255) DEFAULT NULL, `cotaNumero` varchar(255) DEFAULT NULL, `cotaItensId` int(11) DEFAULT NULL, `codProdClie` varchar(255) DEFAULT NULL, `clienteId` varchar(11) DEFAULT NULL, `apres_unid` varchar(255) DEFAULT NULL, CREATE TABLE IF NOT EXISTS `produto` ( `produtoId` int(11) NOT NULL AUTO_INCREMENT, `clienteId` varchar(11) DEFAULT NULL, `id_categ` varchar(11) DEFAULT NULL, `id_unid` varchar(11) DEFAULT NULL, `codProdClie` varchar(255) DEFAULT NULL, `produtoDescr` varchar(255) DEFAULT NULL, `produtoStatus` int(1) NOT NULL, CREATE TABLE IF NOT EXISTS `fornecedores` ( `fornecedorId` int(11) NOT NULL AUTO_INCREMENT, `criadoEM` timestamp NULL DEFAULT NULL, `modificadoEM` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `fornecedorStatus` varchar(255) DEFAULT NULL, `usuarioNivel` varchar(255) DEFAULT NULL, `nome` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `senha` varchar(150) DEFAULT NULL, `telefone` varchar(20) DEFAULT NULL, CREATE TABLE IF NOT EXISTS `clientes` ( `clienteId` int(11) NOT NULL AUTO_INCREMENT, `criadoEM` timestamp NULL DEFAULT NULL, `modificadoEM` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `clienteStatus` varchar(255) DEFAULT NULL, `usuarioNivel` varchar(255) DEFAULT NULL, `nome` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `senha` varchar(150) DEFAULT NULL, `telefone` varchar(20) DEFAULT NULL, Grato em me ajudar. Atenciosamente, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Janeiro 30, 2017 O que você tentou?Postar sua estrutura pra eu poder fazer pra você sem chance.De uma olhada de como montar a query com mais de uma tabela! http://stackoverflow.com/questions/14995000/sql-inner-join-more-than-two-tables E diga-se de passagem não consegui entender nada nesta estrutura, quais IDs ligam as tabelas etc?, pesquise por foreignkey para criar as chaves e índices. http://www.w3schools.com/sql/sql_foreignkey.asp Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 30, 2017 Caro Williams O que postei, não foi no intuito de você fazer para mim, isso nunca me passou pela a cabeça. Apenas mostrei algo para que pudesse de mar um ponto de partida. Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 31, 2017 Caros amigos Peço SOCORRO. Por favor, me ajuda nesta parte desta Exibição na tela, pois não estou conseguindo. Humildemente recorro ao auxílio dos amigos e peço desculpa principalmente ao amigo Williams. Mas SOCORRO, SOCORRO, SOCORRO. Por favor. Atenciosamente, Renato Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 31, 2017 Atente-se as Orientações e Regras do Fórum de PHP Seja paciente, da definição de "ter paciência" e não de enfermo, para ter que "gritar" por socorro. Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Fevereiro 7, 2017 Caros amigos Com ajuda de uma amigo, consegui resolver o problema. Ficou assim: function mostraRespostaItens() { global $conecta; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoItens.cotaNumero, cotacaoItens.codProdClie, cotacaoItens.clienteId, produto.clienteId, produto.codProdClie, produto.produtoDescr FROM produto INNER JOIN cotacaoItens ON cotacaoItens.codProdClie = produto.codProdClie Where cotacaoItens.clienteId = '$cliente' AND cotacaoItens.clienteId = produto.clienteId "; $stmt = $conecta->prepare($sql); $stmt->execute(); $num = $stmt->rowCount(); $prod = null; if ($num > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { extract($row); if ($prod != $codProdClie) { if (!is_null($prod)) { 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' >"; mostraRespFornec($codProdClie); } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } function mostraRespFornec($codProdClie) { global $conecta; $cliente = '3'; $cotaNum = '3.3'; $sql = "SELECT cotacaoResposta.cotaRespId, cotacaoResposta.cotaNumero, cotacaoResposta.codProdClie, cotacaoResposta.cotaRespMarca, cotacaoResposta.cotaOferta, cotacaoResposta.fornecedorId, cotacaoResposta.cotaRespQtde, cotacaoResposta.cotaRespVlr, cotacaoResposta.cotaRespTotal, cotacaoResposta.cotaItensId, fornecedores.fornecedorId, fornecedores.nome FROM fornecedores INNER JOIN cotacaoResposta ON cotacaoResposta.fornecedorId = fornecedores.fornecedorId Where cotacaoResposta.cotaNumero = '$cotaNum' AND cotacaoResposta.cotaOferta = '2' AND cotacaoResposta.codProdClie = $codProdClie ORDER BY cotacaoResposta.cotaRespVlr ASC"; $result = $conecta->prepare($sql); $result->execute(); $nume = $result->rowCount(); $forn = null; if ($nume > 0) { while ($row = $result->fetch($forn)) { extract($row); if ($forn != $fornecedorId) { if (!is_null($forn)) { echo "</table>"; } echo "<table>"; 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 " <td> </td>"; } } //Fecha While echo "</table>"; // Fechando a tabela da última categoria do laço } } Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites