Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1713 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Faire la moyenne des données d'une colonne récupérées avec une requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire la moyenne des données d'une colonne récupérées avec une requete

n°2191655
Icedarts
Posté le 24-05-2013 à 16:11:15  profilanswer
 

Bonjour à tous,
 
Voila mon souci, j'affiche un tableau sur mon site grace à cette requete:
 

Code :
  1. <thead>
  2.     <tr>
  3.      <th>MATCH DE</th>
  4.      <th width="200px">NOMS</th>
  5.      <th>PPD</th>
  6.      <th>MPR</th>
  7.      <th>MOYENNE</th>
  8.     </tr>
  9.    </thead>
  10.    <tbody>
  11.     <?php
  12.      $q = '
  13.      SELECT horaire, joueur, ppd, mpr, (ppd+mpr*10)/6 as moyenne
  14.      FROM moyenne
  15.      where joueur = "' . htmlspecialchars($_GET['nom']) . '"
  16.      UNION ALL
  17.      SELECT horaire, joueurb, ppdb, mprb, (ppdb+mprb*10)/6 as moyenne
  18.      FROM moyenne
  19.      where joueurb = "' . htmlspecialchars($_GET['nom']) . '"
  20.      ORDER BY horaire
  21.      ';
  22.      $r = mysql_query($q) or die(mysql_error());
  23.      while (list($horaire,$joueur,$ppd,$mpr,$moyenne) =mysql_fetch_array($r)) {
  24.     ?>
  25.     <tr>
  26.      <td id="sample2"><?php echo $horaire ?></td>
  27.      <td id="sample2"><?php echo $joueur ?></td>
  28.      <td id="sample2"><?php echo $ppd ?></td>
  29.      <td id="sample2"><?php echo $mpr ?></td>
  30.      <td id="sample2"><?php echo number_format($moyenne,2) ?></td>
  31.     </tr>
  32.     <?php
  33.      }
  34.     ?>
  35.    </tbody>


 
Ce qui me donne ce tableau:
 
http://sdz-upload.s3.amazonaws.com/prod/upload/exemple.PNG
 
J'aimerai rajouter une ligne à la fin du tableau qui me donne la moyenne de la colonne moyenne.
Mais je ne sais pas comment faire.
 
Un coup de main serait le bienvenu!!!
 
Merci d'avance.

mood
Publicité
Posté le 24-05-2013 à 16:11:15  profilanswer
 

n°2191717
deliriumtr​emens
sic transit intestinal...
Posté le 25-05-2013 à 14:46:20  profilanswer
 

Code :
  1. $i =0;
  2. $somme_moyenne = 0;
  3. while (list($horaire,$joueur,$ppd,$mpr,$moyenne) =mysql_fetch_array($r)) {
  4.     ?>
  5.     <tr>
  6.      <td id="sample2"><?php echo $horaire ?></td>
  7.      <td id="sample2"><?php echo $joueur ?></td>
  8.      <td id="sample2"><?php echo $ppd ?></td>
  9.      <td id="sample2"><?php echo $mpr ?></td>
  10.      <td id="sample2"><?php echo number_format($moyenne,2) ?></td>
  11.     </tr>
  12.     <?php
  13.       $i++;
  14.       $somme_moyenne += $moyenne;
  15.      }
  16.     ?>
  17.    <tr>
  18.        <td colspan="4">MOYENNE</td>
  19.       <td><?php echo number_format($i == 0 ? 0 : $moyenne / $i), 2)?></td>
  20.   </tr>
  21.    </tbody>

n°2191718
Icedarts
Posté le 25-05-2013 à 14:57:43  profilanswer
 

Ça me donne un résultat à 0.00.
 
http://img822.imageshack.us/img822/6659/capture11f.png
 
J'ai fait un echo des variables $i et $moyenne $i donne bien 7 mais $moyenne est vide.
 
à mon avis c'est $somme_moyenne += $moyenne; qui ne fonctionne pas.
Mais ça dépasse mes compétences.
En tout cas merci de te pencher sur mon problème.

n°2191719
Icedarts
Posté le 25-05-2013 à 15:02:42  profilanswer
 

Et bien oui bien sur j'ai modifié
<td id="sample2"><?php echo number_format(($i == 0 ? 0 : $moyenne / $i), 2)?></td>
par
<td id="sample2"><?php echo number_format(($i == 0 ? 0 : $somme_moyenne / $i), 2)?></td>
et ça fonctionne ;)
Merci à toi!!!

n°2191720
deliriumtr​emens
sic transit intestinal...
Posté le 25-05-2013 à 15:22:10  profilanswer
 

ah ouais c'est pas faux

n°2192828
Miagic
Posté le 05-06-2013 à 09:12:59  profilanswer
 

Sinon je pense qu'il devait être possible de tout récupérer en une requête avec quelque chose de ce style :
 

Code :
  1. SELECT 1 as determinant, horaire, joueur, ppd as ppd, mpr as mpr, (ppd+mpr*10)/6 as moyenne
  2. FROM moyenne
  3. where joueur = "' . htmlspecialchars($_GET['nom']) . '"
  4. UNION ALL
  5. SELECT 1 as determinant, horaire, joueurb, ppdb as ppd, mprb as mpr, (ppdb+mprb*10)/6 as moyenne
  6. FROM moyenne
  7. where joueurb = "' . htmlspecialchars($_GET['nom']) . '"
  8. UNION ALL
  9. SELECT 2 as determinant, null as horaire, joueur, sum(decode(joueur, "' . htmlspecialchars($_GET['nom']) . '", ppd, ppdb)) as ppd,
  10.        sum(decode(joueur, "' . htmlspecialchars($_GET['nom']) . '", mpr, mprb)) as mpr,
  11.    (sum(decode(joueur, "' . htmlspecialchars($_GET['nom']) . '", ppd, ppdb))+sum(decode(joueur, "' . htmlspecialchars($_GET['nom']) . '", mpr, mprb))*10)/6 as moyenne
  12. FROM moyenne
  13. where joueur = "' . htmlspecialchars($_GET['nom']) . '"
  14. or joueurb = "' . htmlspecialchars($_GET['nom']) . '"
  15. ORDER BY determinant, horaire


---------------
Miagic

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Faire la moyenne des données d'une colonne récupérées avec une requete

 

Sujets relatifs
Récupérer des données dans plusieurs fichiersAcuqisition de données PAr RS232(MIKROC)
SQl : trouver l'élément suivant d'une colonneEchange de données entre meme application JAVA installer dans deux PC
colonne dans une table SQLite android[Excel/VBA] MàJ Données Graphique
Quel langage pour bases de données, stats et user interfaceSelection a colonne variable dans une autre feuille
[Oracle 10G] UTL_FILE avec requête conséquente 
Plus de sujets relatifs à : Faire la moyenne des données d'une colonne récupérées avec une requete


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR