Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola, boa note. Bom sou novo no forum. Ainda irei contribuir, mas hoje precisando de uma ajuda pra resolver um problema com uma consulta.
Eu estou criando um menu com as categorias ( ao clicar em um categoria ele vai filtrar apenas os produtos daquela categoria ) até ai tudo certo, porem na hora que eu chamo as categoria ele também chama as categoria sem nenhum produto cadastrado. Lembrando que o id da categoria esta indo pra dentro da tabela de produtos.
Alguém pode me ajudar a resolver essa consulta e listar apenas as categorias onde existe produtos cadastrados ? OBRIGADO DESDE JÁ!
Do jeito que o amigo explicou seria melhor, mas como você disse que é iniciante, segue essa 'gambiarra' que faz isso, entenda como que é a lógica, ai você consegue fazer de jeitos melhores.
<?php
$conecta = "SUA CONECAO COM O BANCO";
$sql_Prod = "SELECT categoria FROM produtos GROUP BY categoria";
$rs_Prod = $conecta->query($sql_Prod);
$sql_Cat = "SELECT id,categoria_nome FROM categorias
$rs_Cat = $conecta->query($sql_Cat);
while($row_Cat = mysqli_fetch_array($rs_Cat)){
$ID_CAT = $row_Cat['id'];
$CATEGORIA = $row_Cat['categoria_nome'];
while($row_Prod = mysqli_fetch_array($rs_Prod)){
$CAT_PROD = $row_Prod['categoria'];
if($ID_CAT == $CAT_PROD){
echo $CATEGORIA;
}else{
//NADA
}
}
}<?php
$buscar_categ = $conexao->prepare("SELECT * FROM categoria_produtos AS c INNER JOIN produtos AS p ON c.id_categoria_produtos = p.categoria_produto");
$buscar_categ->execute();
?>
<ul class="categorias-produto">
<li><a href="?pag=produtos">Todas as Categorias</a></li>
<?php
while($res_categ = $buscar_categ->fetch(PDO::FETCH_ASSOC)){
?>
<li><a href="?pag=categoria_produtos/<?php echo $res_categ['id_categoria_produtos']; ?>"><?php echo $res_categ['titulo_categoria_produtos']; ?></a></li>
<?php } ?>
</ul>
Acima vai o meu código, fiz como o **Faabiianooc **e funcionou, porem esta listando mais de 1 vez a mesma categoria de acordo com a quantidade de produtos cadastrada em cada categoria isso se deve as outras categorias também. E ai clicar na categoria no menu, esta listando apenas a categoria clicada. Podem me ajudar a ajeitar isso ? Obrigado pela ajuda até agora.

Olá,
As tabelas possui relacionamentos? Voce pode resolver utilizando INNER JOIN.
Algo do tipo
select categoria,produto
from cateroria a
inner join produtos b
on a.idCategoria = b.idCategoria
Altere a consulta conforme sua necessidade!
Abraços.