Ir para conteúdo

POWERED BY:

Arquivado

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

Switch

Puxar Informações

Recommended Posts

Bom Pessoal, vamos lá...

 

Tenho na tabela "produtos" os campos:

 

id

codigo = codigo do produto, é informado pelo usuario

nome = nome do produto

 

... o resto dos campos não tem interesse.

 

Na tabela "venda_produtos" tenho os campos:

 

id

codigo = Código do pedido de venda

cod_produto = código do produto.

 

Vamos ao problema agora, eu preciso exibir numa tela os produtos do pedido de venda.

Por exemplo, o número do pedido é 1 (na tabela "venda_produtos") então eu vou selecionar

todos os códigos na tabela de acordo com o pedido, usei o seguinte:

 

<?					$consulta_produtos =  "SELECT * FROM vendas_produtos WHERE codigo=$codigo ORDER BY id";		$exec_produtos = mysql_query($consulta_produtos) or die (mysql_error());   												while($dfor = mysql_fetch_array($exec_produtos)){		echo "$dfor[cod_produto]"."<br>";		}						?>

Até aí, beleza... ele me mostra os códigos dos produtos que tem vinculo com o número do pedido.

 

Agora eu preciso exibir o nome do produto de acordo com os códigos que ele está me exibindo no código acima.

 

Usei isso:

 

<?						$exe2 =  mysql_query("SELECT * FROM vendas_produtos WHERE codigo=$codigo ORDER BY id") or die(mysql_error());						while ($dados2 = mysql_fetch_array($exe2)){						$codigo_teste = $dados2["cod_produto"]."<br>";			}									$desc_produtos =  "SELECT * FROM produtos WHERE codigo=$codigo_teste";			$exec_desc = mysql_query($desc_produtos) or die (mysql_error());   													while($nomefor = mysql_fetch_array($exec_desc)){				echo "$nomefor[nome]<br>";			}									?>

Resultado:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

 

http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Alguém pode me ajudar aí ? Sou iniciante no PHP, to me matando aqui... ehehe please !

 

Vlw... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Switch, tente:$consulta_produtos = "SELECT vendas_produtos.*, produtos.nome FROM vendas_produtos INNER JOIN produtos ON vendas_produtos.codigo=produtos.id WHERE vendas_produtos.codigo=$codigo ORDER BY vendas_produtos.id";Assim os produtos retornam no campo nome.Não tive como testar, mas qualquer coisa, posta aí ;-)[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

o Correto seria:

 

SELECT vendas_produtos.*, produtos.nome FROM vendas_produtos INNER JOIN produtos ON vendas_produtos.cod_produto=produtos.codigo WHERE vendas_produtos.codigo=$codigo ORDER BY vendas_produtos.id

Ele continou exibindo como antes.

 

O meu problema está sendo nessa parte aqui

 

<?						$exe2 =  mysql_query("SELECT vendas_produtos.*, produtos.nome FROM vendas_produtos INNER JOIN produtos ON vendas_produtos.cod_produto=produtos.codigo WHERE vendas_produtos.codigo=$codigo ORDER BY vendas_produtos.id") or die(mysql_error());			while ($dados2 = mysql_fetch_array($exe2)){						$codigo_teste = $dados2['cod_produto']."<br>";			}									$desc_produtos =  "SELECT nome FROM produtos WHERE codigo=$codigo_teste";			$exec_desc = mysql_query($desc_produtos) or die (mysql_error());   													while($nomefor = mysql_fetch_array($exec_desc)){				echo "$nomefor[nome]"."<br>";			}								?>

Eu quero exibir o nome do produto, que está na tabela "produtos" no campo "nome"... mas pra min exibir o nome, ele tem que puxar o código do produto, que está na tabela "vendas_produtos" no campo "cod_produtos" e relacionar com o campo "codigo" da tabela "produtos"

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é o mesmo de antes?Como tu vai exibir os dados? Todos juntos?Algo tipo Código da Venda - Código do Produto - Nome do Produto?[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é o mesmo erro de antes.É isso mesmo que eu quero exibir, essas 3 informações, sendo que o código do produto tem que ser somente o que está relacionado com a venda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, então dá pra fazer tudo numa única query. Recapitulando:TABELA produtosidcodigonomeTABELA "venda_produtos"idcodigocod_produto$codigo = $_POST['codigo']; //aqui nao sei como tu chama a variavel$q = mysql_query("SELECT venda_produtos.*, produtos.nome FROM venda_produtos INNER JOIN produtos ON venda_produtos.cod_produto=produtos.id WHERE vendas_produtos.codigo='$codigo'");while($r = mysql_fetch_array($q)) { $codigoVenda = $r['codigo']; $codigoProduto = $r['cod_produto']; $nomeProduto = $r['nome']; //exibe echo "$codigoVenda - $codigoProduto - $nomeProduto";}Veja bem: o erro antes acusava na primeira linha. Se o script que tu passou não é o início do arquivo, o erro pode ser bem antes do que estamos analisando. Dá uma conferida, qualquer coisa avisa aí.[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta retornando esse erro

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\root\eControl - Duda\vendas\incluir_produtos.php on line 517

 

$q = mysql_query("SELECT venda_produtos.*, produtos.nome FROM venda_produtos INNER JOIN produtos ON			venda_produtos.cod_produto=produtos.id WHERE vendas_produtos.codigo='$codigo'");			while ($r = mysql_fetch_array($q)){				$codigoVenda = $r['codigo'];			$codigoProduto = $r['cod_produto'];			$nomeProduto = $r['nome'];			echo "$codigoVenda - $codigoProduto - $nomeProduto";			}

Linha 517 : while ($r = mysql_fetch_array($q)){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver :D

 

Ainda estou testando para ver se está perfeito, mas de imediato seria isso:

 

<?								$consulta_produtos =  mysql_query("SELECT vendas_produtos.*, produtos.* FROM vendas_produtos INNER JOIN produtos ON vendas_produtos.cod_produto=produtos.codigo WHERE vendas_produtos.codigo=$codigo ORDER BY vendas_produtos.id") or die(mysql_error());						while ($exec = mysql_fetch_array($consulta_produtos)){						$codigo_teste = $exec['cod_produto']." - ";			$nome_produto = $exec['nome']." - ";			$quantidade = $exec['quant']." - ";			$valor_vista= $exec['pvista'];						if($formapg=="À Vista"){			$valor = $exec['pvista']." - ";			}						if($formapg=="À Prazo"){			$valor = (($valor_vista*13)/100) + $valor_vista." - ";			}						if($formapg=="Oficina"){			$valor = $exec['poficina']." - ";			}						if($formapg=="Atacado"){			$valor = $exec['patacado']." - ";			}						$valortotal = $valor*$quantidade."<br>";						echo "$codigo_teste"."$nome_produto"."$quantidade"."R$ $valor"."R$ $valortotal";			}												?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, seguinte...

 

O script acima está funcionando perfeito até agora, porém eu preciso fazer uma coisa e não estou conseguindo, segue a imagem dessa parte do sistema:

 

Imagem Postada

 

A parte de produtos é o seguinte código:

 

<?								$consulta_produtos =  mysql_query("SELECT vendas_produtos.*, produtos.* FROM vendas_produtos INNER JOIN produtos ON vendas_produtos.cod_produto=produtos.codigo WHERE vendas_produtos.codigo=$codigo ORDER BY vendas_produtos.id") or die(mysql_error());						while ($exec = mysql_fetch_array($consulta_produtos)){						$codigo_teste = $exec['cod_produto'];			$nome_produto = $exec['nome'];			$quantidade = $exec['quant'];			$valor_vista= $exec['pvista'];						if($formapg=="À Vista"){			$valor = $exec['pvista'];			}						if($formapg=="À Prazo"){			$valor = (($valor_vista*13)/100) + $valor_vista;			}						if($formapg=="Oficina"){			$valor = $exec['poficina'];			}						if($formapg=="Atacado"){			$valor = $exec['patacado'];			}						$valortotal = $valor*$quantidade;						echo			"			<div align=center>			<table width=100% border=0>			  <tr>   			 <td height='1' width=10% align=left>$codigo_teste</td>   			 <td height='1' width=50% align=left>$nome_produto</td>			 <td height='1' width=04% align=left>$quantidade</td>			 <td height='1' width=13% align=left>R$ $valor</td>			 <td height='1' width=13% align=left>R$ $valortotal</td> 			</tr>			</table>			</div>			";						}							?>
Ok, eu preciso fazer o seguinte, somar o total de cada item e fazer o total geral do pedido, como fazer isso ?

 

Vlw... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, vamos lá. Vi que você está utilizando várias condições para o pagamento, que resulta num $valortotal ($valor * $quantidade). O que tu precisa é somar este $valortotal, enquanto tiver produtos no pedido. Tente algo como://define variável que vai receber a soma$somaTotal = 0;while ($exec = mysql_fetch_array($consulta_produtos)){ $codigo_teste = $exec['cod_produto']; $nome_produto = $exec['nome']; $quantidade = $exec['quant']; $valor_vista= $exec['pvista']; if($formapg=="À Vista"){ $valor = $exec['pvista']; } if($formapg=="À Prazo"){ $valor = (($valor_vista*13)/100) + $valor_vista; } if($formapg=="Oficina"){ $valor = $exec['poficina']; } if($formapg=="Atacado"){ $valor = $exec['patacado']; } $valortotal = $valor*$quantidade;//soma o valortotal$somaTotal += $valortotal;... daqui em diante segue o códigoPra então exibir a soma, utilize um novo echo com uma linha da tabela, mas fora do while, senão a soma vai aparecer após cada produto :-p[]sAnderson Mello

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.