Estou com um problema que não consigo resolver, estou relacionando algumas Tabelas, onde o sistema precisa buscar as seguintes informações:
Cotação ID - Titulo => isso busca
Produto da Cotação => isso busca
Fornecedores que responderam a cotação => isso busca
Resposta dos fornecedores, conforme produto => isso trás tudo errado.
A rotina que escrevi trás desta forma:
3 - Digity Ltda - Cotação n. 3.3 - MATERIAL DE ESCRITÓRIO
Produtos cotados
101 - CADERNO UNIVERSITÁRIO 1-MAT
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
131 - RÉGUA 30CM - ACRÍLICA
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
140 - CANETA BIC - AZUL
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
150 - ESTILETE MÉDIO
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
Como pode observar, o sistema trás fornecedores diferentes, mas infelizmente trás sempre as mesmas QTDE, Vr_UNIT e TOTAL, para as respostas, embora cada produto teve uma quantidade e valor diferente informados.
Abaixo o código fonte que estou usando:
//mostraResposta - trago o Cliente e os dados(cabeçalho) da Cotação<?php function mostraResposta(){
include"Connections/config.php";
$cliente ='3';
$cotaNum ='3.3';
$sql ="SELECT cotacao.cotaNumero, cotacao.cotaTitulo, clientes.clienteId, clientes.nome
FROM clientes
INNER JOIN cotacao ON cotacao.cotaNumero = '$cotaNum'
Where clientes.clienteId = '$cliente' ";
$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}?>//mostro as respostas que a cotação teve<?php function mostraRespostaItens(){
include"Connections/config.php";
$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>";}
echo " <br/>";// seleciono os Código e Descrição dos Produtos
echo "<h2>{$codProdClie} - {$produtoDescr}</h2>";
echo "<table border='0' cellpadding='3' cellspacing='2' >";
mostraRespFornec();//chamo as resposta por produto}}//Fecha While
echo "</table>";// Fechando a tabela da última categoria do laço}}?>//Mostro as resposta dos Fornecedores, com suas quantidades e valores//nesta parte que está o problema.<?php function mostraRespFornec(){
include"Connections/config.php";
$cliente ='3';
$cotaNum ='3.3';/*
$sql = "SELECT cotacaoResposta.cotaRespId, cotacaoResposta.cotaNumero, cotacaoResposta.codProdClie,
cotacaoResposta.cotaOferta, cotacaoResposta.fornecedorId, cotacaoResposta.cotaRespQtde,
cotacaoResposta.cotaRespVlr, cotacaoResposta.cotaRespTotal,
fornecedores.fornecedorId, fornecedores.nome,
produto.produtoId, produto.codProdClie, produto.produtoDescr, produto.clienteId
FROM produto
INNER JOIN (cotacaoResposta INNER JOIN fornecedores ON cotacaoResposta.fornecedorId = fornecedores.fornecedorId)
ON cotacaoResposta.codProdClie = produto.codProdClie
WHERE cotacaoResposta.cotaNumero = '$cotaNum'
AND cotacaoResposta.cotaOferta = '2'
GROUP BY fornecedores.fornecedorId
ORDER BY cotacaoResposta.cotaRespVlr ASC";
*/
$sql ="SELECT cotacaoResposta.cotaRespId, cotacaoResposta.cotaNumero, cotacaoResposta.codProdClie,
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'
GROUP BY fornecedores.fornecedorId
ORDER BY cotacaoResposta.cotaRespVlr ASC";
$stmt = $conecta->prepare($sql);
$stmt->execute();
$num = $stmt->rowCount();
$prod =null;if($num >0){while($row = $stmt->fetch($prod)){
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}}?>
Já esgotei todo o meu conhecimento, não consigo resolver este erro.
Pergunta
remazela
Caros amigos
Estou com um problema que não consigo resolver, estou relacionando algumas Tabelas, onde o sistema precisa buscar as seguintes informações:
Cotação ID - Titulo => isso busca
Produto da Cotação => isso busca
Fornecedores que responderam a cotação => isso busca
Resposta dos fornecedores, conforme produto => isso trás tudo errado.
A rotina que escrevi trás desta forma:
3 - Digity Ltda - Cotação n. 3.3 - MATERIAL DE ESCRITÓRIO
Produtos cotados
101 - CADERNO UNIVERSITÁRIO 1-MAT
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
131 - RÉGUA 30CM - ACRÍLICA
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
140 - CANETA BIC - AZUL
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
-----
150 - ESTILETE MÉDIO
2 - Fornecedor Alfa.......: 5 - 5,50 - 27,50
3 - Fornecedor Beta......: 5 - 6.00 - 30.00
1 - Fornecedor Omega..: 5 - 7.00 - 35.00
Como pode observar, o sistema trás fornecedores diferentes, mas infelizmente trás sempre as mesmas QTDE, Vr_UNIT e TOTAL, para as respostas, embora cada produto teve uma quantidade e valor diferente informados.
Abaixo o código fonte que estou usando:
Já esgotei todo o meu conhecimento, não consigo resolver este erro.
Por favo, alguém pode me ajudar.
Grato,
Renato
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.