Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amios,
Estou com uma duvida aqui de como listar algo do banco,
Seguinte, gostaria de fazer a listagem da seguinte maneira:
Nome da Categoria 01
conteudo da categoria
conteudo da categoria
conteudo da categoria
Nome da Categoria 02
conteudo da categoria
conteudo da categoria
conteudo da categoria
Nome da Categoria 03
conteudo da categoria
conteudo da categoria
conteudo da categoria
Entao, sempre que tiver uma categoria nova ela ja entra na lista com o seu conteudo abaixo, e se ela for removida ela sai da lista
Eu tentei bolar algumas formas de mostrar isto no while mas nao consegui, talvez alguem poderia me ajudar? :D
Estrutura da tabela:
Tabela categorias
id
nome
tabela produtos
cod
imagem
nome
conteudo
cat_id
ativo
nao sei se isso é possivel, mas se for, alguem pode me dar algumas dicas?
Agradeço desde já
Kleber
Ahh bruno, falando assim eh facil! hehehe
nao poderia me ajudar com o codigo? :D (é, sou abusado, hehe)
Mais ou menos isto.
$sql_query = mysql_query("select id from categorias");
while($arr = mysql_fetch_array($sql_query)){
$query = mysql_query("SELECT * FROM CONTEUDOS WHERE ID_CATEGORIA="".$arr['id']."");
while($content = mysql_fetch_array($query){
print_r($content);
}
}parse error in *****.php on line 11
que seria essa parte:
$query = mysql_query("SELECT * FROM produtos WHERE cat_id="".$arr['id']."");
:(Eita concatenação louca.. faz simplesmente:
$query = mysql_query("SELECT * FROM `produtos` WHERE `cat_id` = {$arr['id']} ");
Cara... exatamente qual é a dificuldade?
Desculpe, mas não vou fazer o código pra ti. Ajudar é diferente de dar o peixe já frito e cortado.
nao quero o codigo pronto, eu só nao entendo a logica de fazer um select pra cada tabela e listar eles ordenados,
pega o id da categoria 1 lista o nome e abaixo lista todos os produtos que tem o cat_id iguais ao daquela categoria, depois repete com cada categoria.
ficando
Nome da Categoria 01
conteudo da categoria
conteudo da categoria
conteudo da categoria
Nome da Categoria 02
conteudo da categoria
conteudo da categoria
conteudo da categoria
etc...
eu só consigui fazer um select e listar 1 categoria com seus produtos, ae ficou facil heheh, mas quando eh pra dar um loop e repetir com todas as outras categorias eu nao consigo entender a logica da coisa :(
Uai, a lógica tá aqui rapaz!
>
Faz 2 loops.(encaixados)
O primeiro lista as categorias.
O segundo recebe como WHERE o cat_id, e lista até existir registros daquela categoria.
e pronto :lol:
Se você quer ordenado por categoria, basta adicionar:ORDER BY id no select da tabela de categoria.
Ou seja, o loop externo.
Mostra oque você tem. Diz o php retorna algum erro.
Se não, diga oque você precisa fazer, que vamos implementando.
beleza, vou tentar aqui e ja posto! :D Obrigado ae pela atencao
Bruno,
Muito obrigado pelas dicas, eu segui a logica dos 2 while!!! Obrigado mesmo, consegui aqui
$sql = "SELECT * FROM categorias ORDER BY id ASC";
$query= mysql_query($sql) or die(mysql_error());
while ($linha = mysql_fetch_array($query)) {
$id = $linha["id"];
$nome_cat = $linha['nome'];
echo "<strong>$nome_cat</strong> <br>";
$sql_prato = "SELECT * FROM produtos WHERE cat_id = '$id' ORDER BY nome ASC";
$query_prato= mysql_query($sql_prato) or die(mysql_error());
while ($linha_prato = mysql_fetch_array($query_prato)) {
$cod = $linha_prato["cod"];
$imagem = $linha_prato["imagem"];
$nome = $linha_prato["nome"];
$conteudo = $linha_prato["conteudo"];
$cat_id = $linha_prato["cat_id"];
$ativo = $linha_prato["ativo"];
echo "$nome <br><br>";
}
}
ResolvidoÉ isso ai rapaz! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
Se eu tivesse feito o código pra ti, você não teria aprendido. http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif
Força ae. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Faz 2 loops.(encaixados)
O primeiro lista as categorias.
O segundo recebe como WHERE o cat_id, e lista até existir registros daquela categoria.
e pronto :lol: