Tri assez compliqué (avec ou sans mysql)

Signaler
Messages postés
32
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
13 septembre 2004
-
Messages postés
32
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
13 septembre 2004
-
Bonjour, je voudrais faire un systéme de classement de photos en fonction de leurs moyennes reçues et de leurs nombres de notes.
Je peux donc trier les résultats par moyennes mais lorsque la moyenne est identique l'ordre (la priorité de l'une plus que l'autre) devient aléatoire. Comment faire pour trier par moyennes et si deux moyennes sont identiques donner plus de poids à la photo qui à eu le plus de notes ?

J'avais trouvé une solution mais elle ne me paraissée pas viable à long terme....
Je procédé comme suit :
Je recuperer l'ensemble des moyennes avec leurs nombre de notes. Ensuite je multiplié chaques moyennes par (leurs nombre de notes respectifs + 10000000) ceci me donné donc un nombre que updaté sur le champ rapport des votes de chaques photo vers mysql, il ne me resté plus qu'a trier par ce champ et c'était correct mais le problème est le jours ou le produit du nombre de notes par la moyenne dépasse 10000000 le rapport ne fonctionne plus il est fossé !
Vous pourrez me dire je peux tjs augmenter ce nombre pour que ça n'arrive pas mais je trouve que c un peu "bricol" donc c'est pkoi je fait appel à vous.
Merci

2 réponses

Messages postés
128
Date d'inscription
mardi 11 mai 2004
Statut
Membre
Dernière intervention
12 août 2005

Salut,
si tu utilises Mysql, il te suffit de faire un tri avec plusieurs parametres dans ta requete. Un truc du genre :
SELECT * FROM nom_table ORDER BY parametre1,parametre2
Messages postés
32
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
13 septembre 2004

En fait ce systéme là ne fonctionne pas car le tri s'effectue sans donner plus d'importance à la moyenne plus qu'au nombre de notes.

Donc exemple :
- une moyenne de 6 (2000 notes)
- une moyenne de 9 (10 notes)

Et bien la moyenne de 9 doit sortir dans les résultats avant celle de 6 et avec ta solution c'est la moyenne de 6 qui sort avant dans les résultats car elle a bcp plus de notes.