Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite,
Amigo estou com um dúvida aqui, seguinte:
Tenho a tabela categoria e a tabela produtos, gostaria de ordenar as tabelas por ordem alfabética sendo primeiro de categorias e depois a tabela de produto. Estou usando o seguinte código:
$dados = lista(' produtos WHERE produto_foto_inicio !="" ORDER BY produto_categoria,produto_nome ASC ');
Porém o que ocorre ele retorna pra mim apenas o os produtos em ordem asc e a tabela categoria ele retorna na ordem em que foi cadastrada no banco.
Como posso estar fazendo isso ???
Bom dia, então um dos problemas disso ocorrer já consegui localizar, pois acaba sendo o seguinte.
Na tabela produtos ele recebe apenas o código da categoria e não nome como eu estava pensando, por isso ele não vai organizar por ordem alfabética e sim por ordem numeral, agora a minha dúvida e o seguinte teria como de alguma maneira organizar e ele me retornar por ordem alfabética tanto os categoria quanto os produtos neste caso ???? Pois neste caso o que posso ver e que ele vai ter que ler a tabela categoria e a tabela produtos para poder fazer esse ORDER BY. Alguma ideia de como posso estar fazendo isso ?
Pelo que entendi falta um joincom a tabela de categorias.
Se não for isto publica sua sql
>
Pelo que entendi falta um joincom a tabela de categorias.
Se não for isto publica sua sql
Você poderia me ajudar então com esse join pois não conheço muita coisa sobre ele.....
Resolvi uma problema assim:
$dados = lista(' produtos INNER JOIN categorias ON produtos.produto_categoria = categorias.categoria_id ORDER BY categorias.categoria_nome ASC');
Porém onde e como eu posso adicionar esta regra tb:
produtos WHERE produto_foto_inicio !=""
(para que os produtos que não contenha foto não carregue) no mesmo código pois coloquei no inicio e não funcionou!!!!
então
...
ORDER BY categorias.categoria_nome ASC,produtos.produto_nome ASC
...
>
Pelo que entendi falta um joincom a tabela de categorias.
Se não for isto publica sua sql
SOLUÇÃO DEFINITIVA:
$dados = lista(' produtos INNER JOIN categorias ON produtos.produto_categoria = categorias.categoria_id WHERE produto_foto_inicio !="" ORDER BY categorias.categoria_nome , produtos.produto_nome ASC');
Obrigado pela dica atravez dela foi se resolvendo tudo.
Consegui uma boa parte desta ajuda também por este tópico:
http://blog.thiagobelem.net/relacionamento-de-tabelas-no-mysql
Obrigado !!!!!!!
seria algo como
order by categoria.nome , produto.nome