Ir para conteúdo

POWERED BY:

Arquivado

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

_Betto

Order By

Recommended Posts

Eu to com um problema, eh uma galeria de fotos, qd guarda o numero de clicks e o numero de votos, eu tenho o campo clicks, os campos referentes as notas q vão de n0, n1, n2 ... n10.

 

Com eles eu estraio a media. So q no meu site ta tendo muitas notas 10... então o Top 10 fica do 1 ao 10 so com nota 10. Então eu queria q o Mysql me desse o seguinte

 

Ordernar por media

Se a media for igual.

Passa a frente quem tem mais votos,

se tiverem o mesmo numero de votos

Passa a frente quem tem mais clicks

se ainda assim tiverem o mesmo numero de clicks

Passa a frente quem foi adicionada primeiro no site (Quem tem o ID menor)

 

Eu posso ate fazer isso pelo PHP, mas acho q não to sendo fiel. Afinal, a 11º ainda com nota 10 pode ter mais votos q as outras q entrar no top 10. Mas o mysql não a trouxe, afinal ele so ordenou pela media, e não olhou o meu segundo criterio de ordenação, o numero de votos

 

Eis o meu SQL pra retornar o q eu uso

 

select a.id,b.id as id_galeria, concat(b.diretorio,'/',a.nome) as foto,b.titulo as festa, a.clicks,a.n0+a.n1+a.n2+a.n3+a.n4+a.n5+a.n6+a.n7+a.n8+a.n9+a.n10 as votos, (0*a.n0+1*a.n1+2*a.n2+3*a.n3+4*a.n4+5*a.n5+6*a.n6+7*a.n7+8*a.n8+9*a.n9+10*a.n10) / (a.n0+a.n1+a.n2+a.n3+a.n4+a.n5+a.n6+a.n7+a.n8+a.n9+a.n10) as media from fotos a inner join galerias b on a.galeria=b.id where a.n0+a.n1+a.n2+a.n3+a.n4+a.n5+a.n6+a.n7+a.n8+a.n9+a.n10>0 and b.exibe='S' order by media desc limit 10

Com ele eu consigo algumas informações pra exibir a foto, a media, clicks e numero de fotos

 

Algume pode me ajudar a deixar esse Top 10 mais fiel?

 

Agradeço desde ja

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.