Ir para conteúdo

POWERED BY:

Arquivado

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

Junior Gabolli

Ordem por ORDER BY com duas tabelas.

Recommended Posts

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 ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria algo como

order by categoria.nome , produto.nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi falta um join com a tabela de categorias.

 

Se não for isto publica sua sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

então

... 
ORDER BY categorias.categoria_nome ASC,produtos.produto_nome ASC 
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi falta um join com 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 !!!!!!!

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.