Regroupement de scores

Regroupement de scores - PHP - Programmation

Marsh Posté le 28-04-2009 à 14:47:34    

Bonjour,
Afin de pimenter nos parties de Fifa 09 wii en ligne, j'ai bricolé un script permettant de conserver tous nos résultats de matchs de foot, et ressortir quelques stats.
 
La page avec tous les résultats ressemble à ça.
 
http://img91.imageshack.us/img91/6466/20090428143735.th.png
 
J'ai d'autres pages de stats prêtes, mais pas de soucis avec elles.
 
J'en viens à ce qui me coince depuis ce matin, c'est la partie sur la "fréquence des scores" (tableau en bas à droite sur ma capture).
On voit par exemple que le score 2-3 est arrivé 4 fois, et que le score 3-2 est arrivé 2 fois, et j'aimerais en fait regrouper l'affichage de ces scores ainsi que le nombre total pour ces 2 scores.
Par exemple, afficher : 2-3 (ou 3-2) | 6 fois
 
Au choix, j'ai 2 champs contenant le score du joueur1 et du joueur2, et j'ai aussi ajouté ce matin un champs contenant le score final, pour essayer d'autres approches.
Si j'arrive sans souci à récupérer le nombre de fois où sont sortis les scores : 2-3 ou 3-2, je cale sur le regroupement des scores.
 
Si quelqu'un a une piste sur la logique à suivre.
N'hésitez pas si vous avez besoin de plus d'infos sur ce que j'ai testé ou ce qui est en place.
C'est un script qui tourne en local seulement (pour l'instant en tout cas).

Reply

Marsh Posté le 28-04-2009 à 14:47:34   

Reply

Marsh Posté le 28-04-2009 à 16:51:34    

En attendant de trouver mieux, j'ai ajouté un champs à ma table qui est alimenté au moment de la saisie des résultats.
Ce champs contient le score sous la forme : 1-2-2-1 (qui change donc en fonction du score rentré).

 

Du coup, je peux faire ma requête dessus sans me casser la tête !

 

Et du coup, j'ai bien ce que je souhaite pour mes stats générales.

 

Le premier jet du code donne ceci.

 
Code :
  1. $sql1 = "SELECT distinct score_partie_total FROM resultats";
  2. $req1 = mysql_query($sql1) or die('Erreur SQL !<br />'.$sql1.'<br />'.mysql_error());
  3. while($liste_scores = mysql_fetch_array($req1))
  4.     {
  5.     $tab_liste_scores[] = $liste_scores[0];
  6.     }
  7. echo '<div class="body">';
  8. echo "<table class=\"sortable-onload-1r rowstyle-alt colstyle-alt no-arrow\"><tr><th class=\"sortable-text\">Scores</th><th class=\"sortable-numeric\" colspan='3'>Fréquence</th></tr>";
  9. foreach ($tab_liste_scores as $value) {
  10.         $tab_score = explode('-',$value);
  11.         $score1 = $tab_score[0];
  12.         $score2 = $tab_score[1];
  13.         $score3 = $tab_score[2];
  14.         $score4 = $tab_score[3];
  15.  $sql2 = "SELECT count(id) FROM resultats WHERE score_partie_total='".$value."'";
  16.  $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error());
  17.  $frequence=mysql_fetch_row($req2);
  18.  $freq_scores = array('frequence'=>$frequence[0],'score1'=>$score1,'score2'=>$score2,'score3'=>$score3,'score4'=>$score4);
  19.         $tab_freq_scores[] = $freq_scores;
  20. }
  21. foreach ($tab_freq_scores as $v1) {
  22.         if ($v1['score1'] == $v1['score2']) {
  23.         echo '<tr><td align="center">'.$v1['score1'].'-'.$v1['score2'].'</td><td align="center">'.$v1['frequence'].'</td></tr>';
  24.         }
  25.         else {
  26.         echo '<tr><td align="center">'.$v1['score1'].'-'.$v1['score2'].' (ou '.$v1['score3'].'-'.$v1['score4'].')</td><td align="center">'.$v1['frequence'].'</td></tr>';
  27.         }
  28. }
  29. echo "</table>";
 

Je gère le tri dans mes tableaux avec ce JS
http://www.frequency-decoder.com/2 [...] revisited/

 

http://img179.imageshack.us/img179/4193/20090428170522.th.png

 

Par contre pour mes stats concernant "tel joueur" contre "tel autre joueur", je n'ai pas de souci, car je souhaite bien identifier, sur quel score chacun gagne le plus souvent !


Message édité par blueteen le 28-04-2009 à 17:05:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed