Ir para conteúdo

POWERED BY:

Arquivado

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

Hewitt

Consulta retornando apenas 1 de cada produto!

Recommended Posts

Tenho o seguinte código:

$sql = mysql_query("SELECT * from produtos p, categorias c WHERE c.id_cat = p.id_cat GROUP BY c.id_cat");
	while ($ln = mysql_fetch_assoc($sql)){
		$id_p = $ln['id_prod'];
		$valor = $ln['valor'];
		$nome_prod = $ln['nome_prod'];
		$id_cat = $ln['id_cat'];
		$nome_cat = $ln['nome_cat'];
		
		
		echo '<button data-toggle="collapse" data-target="#'.$id_cat.'">'.$nome_cat.'</button><br />
    <div id="'.$id_cat.'" class="collapse"><a href="pedido.php?&mesa='.$mesa.'&idp='.$id_p.'&nomep='.$nome_prod.'&v='.$valor.'">
		<ul class="list-group">
        <li class="list-group-item"><img src="img/lanche.png" />'.$nome_prod.'</li>
     	</ul>
		</a></div>';

Só aparecem os 3 botões referentes às categorias, mas só aparece 1 produto de cada categoria. Porque?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No banco, possuo 7 produtos em 3 categorias diferentes. A consulta exibe os 3 botões das categorias, mas apenas um produto por categoria apenas.

 

Diretamente, ele retorna para mim apenas 3 produtos. =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser por causa do "GROUP BY c.id_cat" tira essa parte e testa!

 

Nessa linha: $id_cat = $ln['id_cat'];" se eu não me engano tem que colocar o assim $id_cat = $ln['p.id_cat'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos, quando eu tiro o GROUP BY, aparece um botão para cada produto! Já tinha testado. O botão está dentro do WHILE. Será que tenho que fazer uma consulta pra cada categoria?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser por causa do "GROUP BY c.id_cat" tira essa parte e testa!

 

Nessa linha: $id_cat = $ln['id_cat'];" se eu não me engano tem que colocar o assim $id_cat = $ln['p.id_cat'];

 

Não precisa por o aliás.

 

 

Marcos, quando eu tiro o GROUP BY, aparece um botão para cada produto! Já tinha testado. O botão está dentro do WHILE. Será que tenho que fazer uma consulta pra cada categoria?

 

Utilize INNER JOIN

$sql = mysql_query("SELECT * FROM produtos p INNER JOIN categorias c ON c.id_cat = p.id_cat");

Você está agrupando por categoria, por isso o resultado inesperado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte, também não deu certo. Ele mostra um botão para cada resultado. Fiz 3 SQL's (das categorias) e deu certo do jeito que eu queria!

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.