|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
Bonjour,
Prenons le cas d'un site hébergeant plusieurs forum , je voudrai extraire les 3 forums ayant le plus d'activité. On suppose une table forum, une table user rattachée au forum qu'il créé, et une table post rattachée au forum. Ce qui nous amène a faire une sorte de moyenne où l'on diviserai le nombre de post par le nombre d'utilisateur. EXEMPLE: Forum 1 : 25 post, 250 users => si l'on suis la formule on se retrouve avec un résultat de 0.10 Forum 2 : 250 post, 25 users => 10 Forum 3 : 18 post, 78 users =>0.23 Forum 4 : 58 post, 2 users => 29 Forum 5 : 65 post, 45 users =>1.44 Forum 6 : 89 post, 13 users=> 6.84 Voila ce que je voudrai obtenir : On afficherai donc le nom du forum ayant le meilleur résultat. 1 : Forum4 2 : Forum2 3 : Forum6 Une petite idée pour me mettre sur la piste? Comment rédiger ma requête? Merci d'avance, Jerome |
|
|
00
|
|
|
#2 |
![]() ![]() |
Crée une requête SQL qui va compter le nombre de posts et d'utilisateurs puis en calculer le ratio.
Si tu ne vois pas comment faire, regarde le cours de SQLPro et poste ici ce que tu auras essayé. C'est plus constructif que de te donner la solution toute faite.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#3 | |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
Citation:
Est-ce que je peux extraire les résultats directement en SQL ou il va falloir faire des opérations en PHP? |
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Une seule requête SQL devrait pouvoir te sortir la liste des forum dans l'ordre souhaité. Tu ajouteras les numéros de classement en PHP à la présentation des résultats, ce sera plus simple.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
Voir ci dessous...
Pourquoi ai-je le meme nombre dans a1 et dans a2? Je suis surement sur la mauvaise piste :/ Code :
|
||
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Comme tu fais une jointure entre plusieurs tables, tu te retrouves avec ce genre de jeu de résultat :
id_sujet / id_post 1 / 1 1 / 2 1 / 3 2 / 4 2 / 5 2 / 12 3 / 6 3 / 8 Pour ne pas compter un sujet plusieurs fois, il faut ajouter DISTINCT au COUNT : Code SQL :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
c'est mieux sauf que j'aimerai qu'il compte le nombre de sujet au total dans le count est-ce possible?
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
En fait, du fait des inner join il recupere uniquement les sujet ayant des posts alors qu'il me faut le nombre total de sujet.
sur ce coup la j'ai plus trop d'idées |
|
|
00
|
|
|
#9 | ||
![]() ![]() |
Si tu veux tous les sujets, même ceux qui n'ont pas de post, il te faut une jointure externe :
Code SQL :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : novembre 2006 Messages : 35 ![]() |
LE problème semble reglé.
Merci de m'avoir mis sur la voie! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com