[SQL - PHP]Classement des meilleurs resultats

Fermé
jackson67 - Modifié par jackson67 le 5/12/2011 à 11:36
 jackson67 - 8 déc. 2011 à 13:18
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


A voir également:

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 ^^
0
toujours pas d'aide :( ....
Vraiment personne pour me mettre sur la piste?
0
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 :

$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à.
0
ca va pas, imagine que j'ai 600 forum, on va pas bouclé autant de fois pour rien
0