[SQL - PHP]Classement des meilleurs resultats
jackson67
-
jackson67 -
jackson67 -
Bonjour,
Je souhaiterai afficher en PHP un classement des villes ayant le plus d'activité au sein de mon futur site.
J'ai 3 tables importantes :
Annuaire pro (coordonnées des pros dont un lien vers la table ville pour indiquer sa ville d'apartenance)
Villes (listes des villes de france)
Activité (enregistrement de notifications dès lors qu'un pro effectue une manip sur le site)
Dès lors qu'un pro se connectera à mon site et qu'il effectuera quelque chose, cette activité sera enregistré dans la base. Ce que j'aimerai c'est extraire le nom des 5 villes ayant le plus d'activité
Formule : Nb d'activité total pour une ville / nb de pro dans la ville = coef
Et j'afficherai dans l'ordre les 5 villes ayant le meilleur coef.
Question tordue Désolé :/
Merci d'avance
Je souhaiterai afficher en PHP un classement des villes ayant le plus d'activité au sein de mon futur site.
J'ai 3 tables importantes :
Annuaire pro (coordonnées des pros dont un lien vers la table ville pour indiquer sa ville d'apartenance)
Villes (listes des villes de france)
Activité (enregistrement de notifications dès lors qu'un pro effectue une manip sur le site)
Dès lors qu'un pro se connectera à mon site et qu'il effectuera quelque chose, cette activité sera enregistré dans la base. Ce que j'aimerai c'est extraire le nom des 5 villes ayant le plus d'activité
Formule : Nb d'activité total pour une ville / nb de pro dans la ville = coef
Et j'afficherai dans l'ordre les 5 villes ayant le meilleur coef.
Question tordue Désolé :/
Merci d'avance
A voir également:
- [SQL - PHP]Classement des meilleurs resultats
- Meilleurs sites de téléchargement - Accueil - Outils
- Resultats foot - Télécharger - Vie quotidienne
- Lexer resultats - Télécharger - Sport
- Easy php - Télécharger - Divers Web & Internet
- Logiciel de classement de photos gratuit - Guide
4 réponses
Pas de réponses?
C'est vrai que ma question n'est peut etre pas super clair.
Pour faciliter prenons le cas d'un site hébergeant plusieurs forum , je voudrai extraire les 3 forum ayant le plus d'activité.
On suppose une table forum, une table user rataché 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 resultat 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
On afficherai donc le nom du forum ayant le meyeur resultat.
1 : Forum4
2 : Forum2
3 : Forum6
Ca semble plus facile a comprendre comme ca non?
HElp ^^
C'est vrai que ma question n'est peut etre pas super clair.
Pour faciliter prenons le cas d'un site hébergeant plusieurs forum , je voudrai extraire les 3 forum ayant le plus d'activité.
On suppose une table forum, une table user rataché 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 resultat 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
On afficherai donc le nom du forum ayant le meyeur resultat.
1 : Forum4
2 : Forum2
3 : Forum6
Ca semble plus facile a comprendre comme ca non?
HElp ^^
Je vais avoir besoin de faire quelque chose du genre alors je me suis lancer ce matin sur ton problème, et j'arrive à un résultat satisfaisant :
Voila, j'espère que ça ira à partir de là.
$result = mysql_query("SELECT * FROM listeforum"); // Recuperation de la liste des forum while ($row= mysql_fetch_array($result)){ $resultpersonne = mysql_query("SELECT count(id) FROM listepersonne WHERE idforum = ". $row['id'] ."");// Compte du nombre de personne pour chaque forum $resultpost = mysql_query("SELECT count(id) FROM listepost WHERE idforum = ". $row['id'] ."");// Compte du nombre de post pour chaque forum $resultatpersonne=mysql_fetch_row($resultpersonne); $resultatpost=mysql_fetch_row($resultpost); $moyenne = $resultatpost[0]/$resultatpersonne[0]; // Calcul de la moyenne de post par utilisateur $arr[$row['nomforum']] = $moyenne; // mise en tableau sous forme array 'forum1'=>'moyenne1', ... ) } arsort($arr); // Tri du tableau en fonction du plus haut $cpt=0; foreach ($arr as $cle => $valeur) { echo $cle ,' : ', $valeur ,'<br/>'; // Affichage sous forme Forum : moyenne dans le top, sinon faire echo $cpt,' : ',$cle,'<br/>'; $cpt++; if($cpt==3) break; //on sort de la boucle au bout de 3 plus haut résultat }
Voila, j'espère que ça ira à partir de là.