|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre extrêmement actif
![]() ![]() |
Bonjour à tous,
Le problème est simple : Sur un CMS type Reseau social, les membres ont chacun un nombre de vote et une note(sur 5), j'aimerai réaliser un classement qui prenne en compte ces deux paramètres... Si j'etablis un classement sur la note, le membre peut avoir une note de 5, seulement 2 votes et se retrouver en tête de classement... Et contrairement si j'etablis un classement sur le nombre de vote, le membre peut se retrouver en tête de classement avec 15 votes mais une note de 2.5 Peut être existe t'il une requête permettant d'établir ce genre de classement ou peut être faut t'il user d'une autre technique ? Dans tous les cas j'ai pas réussi à faire un classement qui retourne un resultat correct (equilibre entre note et votes en gros). Merci
__________________
Vous êtes nouveau ici ?! Pensez à consulter les règles pour plus d'efficacité ![]() Mon blog developpez.com! (En travaux) - PHP5 sur 1and1 - Clé aléatoire en PHP |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Webmaster Inscription : mai 2007 Messages : 93 ![]() |
Bonjour,
Je n'ai jamais fait ce genre de truc mais personnellement je ferai quelque chose comme ca: - Créer une variable php $importance = un chiffre de 1 à 10 - Cette variable $importance désigne l'importance du classement. - Elle est obtenue en prenant le plus grand nombre de vote divisé par 10 (exemple: Fabrice est celui qui a le plus de vote (134 votes) donc 134 / 10 = 13,4) - maintenant pour déterminer ton classement, lors de l'affichage tu divises le nb de votes de chacun par 13,4. (Exemple: Roger à 58 votes = 58 / 13,4 = 4, donc $importance = 4 pour Roger. - Donc si dans ton classement tu arrives avec cela: Nom |points |importance Régis |3.3 |2 Roger |3.3 |8 Emilie |3.3 |1 Jean |3.3 |7 Jeanne |3.3 |5 Tu peux facilement déterminer qui mérites sa place ! Qu'en penses-tu ? |
|
|
00
|
|
|
#3 | |
|
Membre extrêmement actif
![]() ![]() |
Re,
Merci de ta réponse Oui c'est une bonne idée mais je viens de me rendre compte d'un truc... Je fais un classement de 20, si je fesais simplement une sous-requête ? Genre je selectionne les 20 membres ayant le plus de vote, et la sous-requête classerai ces 20 par note, ça ferai un classement logique, non ? C'est sur que tant qu'il y a pas bcp de membres le classement serait peut etre pas très significatif... Je sais pas comment faire ça exactement mais je vais chercher Merci =) EDIT : En fait non je dis des bêtises le classement sera pas très bon non plus, pour ta solution d'importance j'ai bien saisi ta réponse mais pas trop ce que ça donnerait... Voilà le classement que j'ai actuellement (classé par vote) : Citation:
Si je fais avec ma sous-requête c'est tous ceux qui ont 5 de note qui vont être premier... Merci
__________________
Vous êtes nouveau ici ?! Pensez à consulter les règles pour plus d'efficacité ![]() Mon blog developpez.com! (En travaux) - PHP5 sur 1and1 - Clé aléatoire en PHP |
|
|
|
00
|
|
|
#4 |
|
Membre extrêmement actif
![]() ![]() |
Un petit coup de pouce ?
MikeV ta solution va placer ceux qui ont le moins de votes dans les premières places... EDIT : Je cherche toujours une petite solution Merci =)
__________________
Vous êtes nouveau ici ?! Pensez à consulter les règles pour plus d'efficacité ![]() Mon blog developpez.com! (En travaux) - PHP5 sur 1and1 - Clé aléatoire en PHP |
|
|
00
|
|
|
#5 | |
|
Membre extrêmement actif
![]() ![]() |
Re,
J'ai trouvé une petite alternative qui rend un classement un peu mieux... Voilà ce que j'ai fait pour ceux que ça interesse : J'ai rajouté un champ dans la table user, le champ moyenne. Le champ moyenne contient pour chaque utilisateur la moyenne de la place du classement vote et du classement note. Exemple, Eric a 6 votes et une note de 4.8, avec ses 6 votes il occupe la 5eme place du classement vote et la position 3 au classement note. Donc 5 + 3 = 8, 8/2 = 4, 4 est stocké dans le champ moyenne. Ensuite lorsque j'etablis le classement, c'est sur moyenne que le tri se fait... Exemple de resultat : Citation:
__________________
Vous êtes nouveau ici ?! Pensez à consulter les règles pour plus d'efficacité ![]() Mon blog developpez.com! (En travaux) - PHP5 sur 1and1 - Clé aléatoire en PHP |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com