Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 25/01/2010, 15h27   #1
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Par défaut Comment calculer la moyenne d'une variable récupére d'un champ mysql

Bonjour,
comment peut on calculer la moyenne d'une variable récupérer avec une boucle WHILE provenant d'un champ d'une base mysql sans utiliser AVG.

Ex:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
.
.
$SQL = "SELECT * FROM table WHERE var ORDER BY date ASC";
$result = mysql_query($SQL) ;
.
.
.
$i=0;
   while($row = mysql_fetch_row($result)) 
      {
    if ($i==0)
    $i=$i+1;
Ce code fonctionne et affiche correctement le contenu de la variable $var ligne par ligne, comme ceci:

30
40
10

Je souhaite en plus ajouter la moyenne de la liste affichée ci-dessus
comme ceci:

30
40
10
moy: 26.66

Donc, je cherche une solution pour cas à chaque boucle while je récupère le contenu de la variable $var pour en calculer la moyenne lorsque la boucle while est terminée.
(Je ne veut pas utiliser la fonction AVG (mysql) car dans la variable $var n'est pas forcément un nombre, mais des fois un valeur à laquelle j'attribue une valeur et cette valeur va dans $var)
Si vous avez une idée sur une solution, merci à vous
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 16h24   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur développement logiciels
Inscription : août 2006
Messages : 10 048
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 048
Points : 16 346
Points : 16 346
Envoyer un message via MSN à CinePhil
Vraiment pas clair ton besoin !

Pour moi, l'incrémentation de $i ne se produira qu'une fois. Je ne vois donc pas comment tu obtiens les valeurs 30, 40, 10.
__________________
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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 16h32   #3
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Il m'affiche autant de ligne qu'il trouve dans la base de données, mais ca, ca fonctionne, c'est de récupérer toutes ces lignes pour en faire la moyenne
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 17h03   #4
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 174
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 50
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 174
Points : 1 364
Points : 1 364
Il faut juste avoir une variable temporaire qui cumule tes valeurs et à la sortie du while diviser cette valeur par $i. Quelque chose comme ça.
Code :
1
2
3
4
5
6
7
$i=0;
$t = 0;
   while($row = mysql_fetch_row($result)) {
    $i++;
    $t += $row['var'];
   }
$moyenne = $t/$i;
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 18h20   #5
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Merci, c'est impeccable !
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 11h17.


 
 
 
 
Partenaires

Hébergement Web