|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Alex Inscription : septembre 2003 Messages : 12 ![]() |
Bonjour, je fais face à un problème qui me met face à mon incompétence. J'ai beau lire des trucs, essayer de me creuser la tête, je n'arrive pas à résoudre mon soucis.
En fait j'ai 2 tables : - 1 "Professionnels" avec des noms de sociétés, classement par ID - 1 "votes" comprenant les votes / sociétés , on retrouve donc l'ID Dans la table "votes" j'ai les champs id - ip - note - nom (correspond à ID de l'autre table) Pour déterminer la note d'une société sur les fiches j'ai donc une fonction qui fait le calcul moyen pour un nom (ID) donné. Ce que je voudrais c'est pouvoir sortir les 5 sociétés ayant les meilleurs votes !! Mais avec cette histoire de calcul préalable , je m'en sors pas !! |
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Bonjour,
Pourrais tu nous montrer ton calcul préalable ? |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Alex Inscription : septembre 2003 Messages : 12 ![]() |
Code :
|
||
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() antoine jouanÉtudiant Inscription : janvier 2010 Messages : 175 ![]() |
Bonjour
Code :
voila |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Romain MonteilDéveloppeur Web Inscription : juin 2011 Messages : 2 ![]() |
Si j'ai bien compris ton message, tu voudrais une requête qui te retourne les 5 sociétés ayants les meilleurs votes ?
Dans ce cas, tu pourrais rajouter un champ "note" dans la table "Professionnels" qui correspond à la note moyenne de la société (ton $avg_value) que tu met à jour à chaque vote. Aprés tu as juste à faire la requête suivante : Code :
SELECT * FROM professionnels ORDER BY note DESC LIMIT 5; |
|
00
|
|
|
#6 | |
|
Invité de passage
![]() Alex Inscription : septembre 2003 Messages : 12 ![]() |
C'est ce que j'avais initialement envisagé, il va falloir que je le mette à l'oeuvre et que je me creuse la tête.
Merci pour votre aide, je vais tenter un peu tout ça . Citation:
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() antoine jouanÉtudiant Inscription : janvier 2010 Messages : 175 ![]() |
Ma solution evite l'ajout de colonne dans la bdd et toute la partie code deja existante enfin aprés tu voix
Cordialement |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Alex Inscription : septembre 2003 Messages : 12 ![]() |
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Alex Inscription : septembre 2003 Messages : 12 ![]() |
Citation:
En fait je pense que ça ne convient pas tout à fait parce que SELECT AVG fait la moyenne de la colonne mais mon problème résulte dans le fait que dans la colonne "note" de la table, j'ai toutes les notes de chaque fiche. Il me faut donc faire la moyenne par fiche (correspondant à une ID) pour pouvoir sortir les 5 ID avec les meilleures notes. Après en définitive si je sortais ça recroiser avec la table "professionnels" ne me semble pas trop compliqué. Peut être il faudrait que je fasse avec les Array, mais il va falloir que je me rencarde car j'ai jamais fait ça. |
|
|
00
|
|
|
#10 |
|
Membre confirmé
![]() antoine jouanÉtudiant Inscription : janvier 2010 Messages : 175 ![]() |
o pire tu peux faire l avg par id ca reduit ton code quand même et aprés avec un systeme de table temporaire ou tu stock test resultat tu peux avoir les 5 meilleur par un limit avec group by
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com