[SQL et PHP] - Moyenne

- Moyenne [SQL et PHP] - PHP - Programmation

Marsh Posté le 09-05-2002 à 22:10:10    

Bonjour à tous,
 
Je vous expose mon problème.
 
J'ai une table avec plus de 1000 personnes enregistrées.
Chaque personne a du entrer son age.
Je veux afficher la moyenne d'âge du groupe de personne pour ce faire j'ai procédé comme ceci:
 
$r="SELECT age FROM usernames";
$res=mysql_query($r);
while($resultat=mysql_fetch_array($res))
     {
     $age=$age+$resultat["age"];
     $i++;
     }
$moyenne_age=round($age/$i,1);
echo "- Moy. d'âge : <b>".$moyenne_age."</b>a.<br><br>";

 
En ayant testé mon script je pensais d'abord qu'il marchait mais en ayant testé plusieurs fois de suite je me suis rendu compte que la moyenne d'âge change  :lol: parfois on voit 19.5 parfois 22.3 etc...  
 
Je pense que c'est dût au fait que ça fait beaucoup trop de petites requêtes pour le serveur. Et ca crée des erreurs.
Bref, meme si ce script marchait ça bouffe énormément de ressources pour rien je crois donc c pas top !
 
Y a t'il moyen avec un requete SQL de:
- à la fois séléctionner tout les age,  
- ensuite de diviser le cumul des ages avec le nombre de resultat obtenu.
 
en UNE requete ???
 
Merci de m'eclairer la dessus, car les grosses requêtes de ce genre je connais pas trop.
 
Merci d'avance !
 
SquiD

 

[jfdsdjhfuetppo]--Message édité par SquiiiD le 09-05-2002 à 22:13:04--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 09-05-2002 à 22:10:10   

Reply

Marsh Posté le 09-05-2002 à 22:21:50    

pk t'utilise pas mysql_num_rows pour recuperer le nombre d'enregistrements ?

Reply

Marsh Posté le 09-05-2002 à 22:23:48    

Tout simplement parceque je savais meme pas que  ca existait !
je fais juste :
 
$nb_enregistrment = mysql_num_row($res); ?

Reply

Marsh Posté le 09-05-2002 à 22:24:36    

"select avg(age) from usernames"
ça fonctionne ça, non ?

 

[jfdsdjhfuetppo]--Message édité par antp le 09-05-2002 à 22:25:57--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-05-2002 à 22:24:56    

mais de toute facon y a pasque ca,
il faut additionner tout les enregistrements ! En une requete ! Comment faire?
Merci

Reply

Marsh Posté le 09-05-2002 à 22:25:37    

moy(age) ?
Je vais tester ca tout de suite ! Merci !

Reply

Marsh Posté le 09-05-2002 à 22:26:19    

SquiiiD a écrit a écrit :

Tout simplement parceque je savais meme pas que  ca existait !
je fais juste :
 
$nb_enregistrment = mysql_num_row($res); ?  




 
oui , impecc ;)

Reply

Marsh Posté le 09-05-2002 à 22:26:25    

J'ai édité, c'est avg, pas moy...
J'ai pas assez dormi moi :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-05-2002 à 22:29:57    

Encore un truc :
 
Je fais SELECT AVG(age) AS moy_age FROM hub_usernames ?
 
ou
 
SELECT AVG(age) FROM hub_usernames ?
 
et  ensuite pour recuperer le resultat je fais quoi?

 

[jfdsdjhfuetppo]--Message édité par SquiiiD le 09-05-2002 à 22:30:19--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 09-05-2002 à 22:32:24    

avec le premier la moyenne sera dans $resultat["moy_age"];
avec le second je sais pas :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-05-2002 à 22:32:24   

Reply

Marsh Posté le 09-05-2002 à 22:33:52    

Oui ok je voulais savoir la quelle de mes requetes etait bonne :)
Bon je test merci

Reply

Marsh Posté le 09-05-2002 à 22:35:36    

Pour le AS je ne garanti rien... je crois que ça passe en Access, mais pour MySQL je sais pas...
SELECT AVG(age) 'moy_age' FROM hub_usernames
peut-être... (rhaaa mes cours de SQL sont lointains :D)

 

[jfdsdjhfuetppo]--Message édité par antp le 09-05-2002 à 22:35:47--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-05-2002 à 22:37:26    

Bon ben voila ca marche nickel ton machin merci beaucoup !!! :)

Reply

Marsh Posté le 09-05-2002 à 22:38:14    

Sisi ca marche je viens de tester  :bounce:  
tkx :)

Reply

Marsh Posté le 09-05-2002 à 22:42:24    

Tiens j'ai télécharger ant renamer .
c toi qui l'a programmé? J'ai longtemps chercher un truc du genre !!! Ca va m'être tres utile !
ciao

Reply

Marsh Posté le 09-05-2002 à 22:44:01    

Ouaip c'est moi qui ait fait ça.
Y a un bout de temps d'ailleurs.
Domage que je n'ai pas beaucoup de temps à consacrer à la version 2 :( (le projet n'avance pas vite)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 09-05-2002 à 22:55:08    

Ok c cool.
 
Aller bonne soiree et merci encore ! ciao

Reply

Sujets relatifs:

Leave a Replay

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