Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Queria fazer uma página com as notícias mais comentadas, mas só que eu não tenho uma ideia de como fazer, alguém pode postar algum exemplo?
Dados das tabelas
noticias = id int(11), titulo varchar(150), texto text
noticias_respostas = id int(11), ip varchar(150), comentario text
>
pq você não cria uma pagina e faz um select com order by das noticias que tem mais comentários
Como eu faria esse order by?
eu teria que selecionar a tabela noticias_respostas com a id da noticia
mais como eu faço isso para mostrar ai a tabela noticias mais comentadas?
Em primeiríssimo lugar, você precisa armazenar na tabela noticias_respostas um id que identifique a que notícia esse comentário faz parte. Exemplo:
noticias = id int(11), titulo varchar(150), texto text
noticias_respostas = id int(11), noticia_id int(11), ip varchar(150), comentario text
Depois, você pode selecionar os comentários de uma notícia específica assim:
SELECT * FROM noticias_respostas WHERE noticia_id = 25
Onde 25 seria o ID da notícia.
E para selecionar as notícias mais comentadas, você poderia fazer assim:
SELECT n.titulo, n.texto, COUNT( c.noticia_id ) qtd_comentarios
FROM noticias n
LEFT JOIN noticias_respostas c ON c.noticia_id = n.id
ORDER BY qtd_comentarios DESC
Não testei, mas acho que é isso aí.
[]'s
Você tem um noticia_id dentro da tabela noticias_respostas, certo?
No seu caso, você vai precisar utilizar ORDER BY junto com uma subquery e a função COUNT.
Basicamente:
SELECT noticias.*, (SELECT COUNT(noticias_respostas.id) FROM noticias_respostas WHERE noticias_respostas.noticia_id = noticias.id) AS total FROM noticias ORDER BY total DESC
>
Queria fazer uma página com as notícias mais comentadas, mas só que eu não tenho uma ideia de como fazer, alguém pode postar algum exemplo?
Dados das tabelas
noticias = id int(11), titulo varchar(150), texto text
noticias_respostas = id int(11), ip varchar(150), comentario text
pq você não cria uma pagina e faz um select com order by das noticias que tem mais comentários