MySQL - Annuaires - classement par note
Donc suite au poste "MySQL - Vote, moyenne, prise en compte minumum de vote", le but maintenant est de classé ces images dans un annuaire, mais en ordonnant les images par note.
Structure:
- Table_vote : [id][idimage][note]
- Table_details_image : [id][idimage][categorie][actif]
- Table_images : [id][status]
[status] et [actif] ont la valeur 1 ou 0 (image publiée ou pas)
[categorie] est l'id de la catégorie pour l'annuaire
Je n'explique pas comment créer un annuaire ici. mais bon, si vous êtes malin, vous avez compris le principe:
voici dont maintenant la requête :
SELECT *,
COUNT(Table_votes.id) AS nbrec,
Table_images.*,
AVG(Table_votes.note) AS lanote
FROM Table_details_image, Table_images, Table_votes
where
Table_images.id=Table_details_image.idimage AND
Table_images.status= "1" AND
Table_votes.idimage = Table_images.id AND
Table_details_image.catimage="$id" AND
Table_details_image.actif="1"
GROUP BY Table_images.id
ORDER BY lanote DESC
Cette requête est loin d'être parfaite, car il faut obligatoirement attribuer une note à l'image pour qu'elle apparaisse, de plus une image avec une note de 10 (soit 1 premier vote) apparaîtra en premier.
Mis à part cela, elle fonctionne bien, de l’optimisation viendra…
Publié le 27 Février 2006 par luca | Ecouter l'article
Publié dans :
Programmation
Accueil
Précédent
Suivant