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