|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
Bonjour,
Je suis étudiants en multimédia, et je dois réaliser un site internet de partage de photos en php/mysql pour un projet, nous travaillons en binome, et d'aprés la description du projet, notre site de base est terminé, mais on a la possibilité d'y rajouter des améliorations afin d'améliorer en retour notre note... Parmi toutes les améliorations j'ai choisit l'amélioration notation. Le principe: Créer un formulaire, ou tout membre ( excepté l'auteur de la photo ) peut voter. Afficher la note minimum , la note maximum et la moyenne de chaque photo en fonctions de l'identifiant de la photo. Jusque la j'ai réussi a tout faire. Le problème c'est qu'il faut aussi que je crée une page ou on peut voir les 5 photos qui ont la meilleur note. Niveau PHP je débute mais niveau MYSQL je m'y connais très peu et j'arrive pas du tout a selectionner ce que je veut pour afficher les 5 photos les mieux notés. Quelqu'un pourrait m'aider a faire ma requete car la je m'en sort pas.* Voici ma table notation: Code SQL :
Voici ma table photo : Code SQL :
|
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
SELECT * FROM ma tables ORDER BY note DESC LIMIT 5.
Goûte ça pour me dire c'est bon ou pas. Ceci aura pour effet de classer par note à la limite de 5 enregistrements.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
Alors j'ai déja gouter quelque chose comme ca :
SELECT * FROM note ORDER BY note_donne DESC LIMIT 5. Mais le problème c'est que ça va me mettre les 5 meilleurs notes et pas les 5 meilleurs moyennes. Imaginons 2 utilisateurs mette 10 a la même photo , dans mon TOP 5 j'aurais 2 fois la même photo. En faite le Order by est pas mal mais d'abord faudrait faire la moyenne des note_donne en fonction de l'id_photo. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Pour calculer la moyenne il faut utiliser la fonction AVG
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
AVG() je connais , je l'ai déja utilisé dans mon site web.
Mais la moi j'arrive pas a formuler la requete complete qui fait la moyenne des note en fonction de l'id_photo et apres qui utlise le ORDER BY. Faut faire 2 requetes ? car la je voit pas du tout |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
Tu fais un SUM de toute les notes d'une image Je crois qu'il faut utiliser un group by sur le sum par image. Là tu peux utiliser le limit.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
berceker united je conner pas SUM je suis en train de chercher dans la doc.
Par contre tu as l'air de bien comprendremon problème tu pourrais pas m'écrire un peu la syntaxe de ma requete stp. Merci ( PS : je suis sur la doc la XD http://dev.mysql.com/doc/refman/5.0/...modifiers.html ) |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Développeur informatique Inscription : février 2005 Messages : 2 982 ![]() |
SUM() permet d'additionner une colonne. Celle qui à la plus grosse somme à forcément gagné.
Là je peux pas tester car j'ai pas de serveur sous la mais. Je sais que le GROUP BY peut t'aider mais perso je l'utilise peut donc il faut que je teste
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
C'est chaud SQL je suis perdu la.
SUM permet d'additionner une colonne mais faudraitr que j'additionne les notes et apres que je divise par le nombre de lignes pour pouvoir faire la moyenne. C'est de plus en plus compliquer ... je sent que je vais abandonner |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
tu as de grosse incoherence ds la structure de ta base un champ note est de type int les clé etrangéres ne sont pas bien établies..
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#11 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
Essayes ça :
Code sql :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
CELIRA I LOVE YOU !!!!!!!!!!!!
Ca marche, c'est trop fort , je reprend gôut au PHP. Par contre j'ai encore quelque soucis toujours sur la BDD mais pour mon amélioration catégorie.http://www.developpez.net/forums/sho...74#post3054574 Si Celira tu as le temps, n'ésite pas jeter un coup d'oeil ENCORE MERCI à tous ce qui m'ont aider a résoudre mon problème. Ils sont 3 je les cite : CELIRA , berceker united, boo64 |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 338 ![]() |
modifie aussi la structure de tes tables
__________________
Stay in Bed .. Save Energy |
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : mai 2007 Messages : 49 ![]() |
MDr je note b0064 mais c'est sur la machine de mon binôme qu'on a traité les clé étrangère la j'ai pas fait gaffe je vais rectifier ça.
|
|
|
00
|
|
|
#15 | |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 686 ![]() |
Citation:
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com