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

  FORUM HardWare.fr
  Programmation
  PHP

  calcul de moyenne sur une table sql [ résolu ]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

calcul de moyenne sur une table sql [ résolu ]

n°281621
mecano1
Posté le 07-01-2003 à 23:49:55  profilanswer
 

salut à tous,
je cherche à faire un classement selon des notes.
Je m'explique: j'ai dans une table un champs avec des nom d'élèves et un champs avec des notes.
par exemple:
 

Citation :

david  |  6
eric   |  12
julie  |  15
david  |  14
eric   |  11
julie  |  13
david  |  8

 
 
Donc au fur et à mesure on se retrouve avec plusieurs fois le même nom avec des notes différentes et ce que je cherche à faire c'est le calcul des moyennes par élèves et les classer dans l'ordre des moyennes.
Si il y a un malin pour m'aider parceque là je n'ose même pas montrer le script que j'ai écrit c'est un vrai massacre :cry:.


Message édité par mecano1 le 09-01-2003 à 00:05:28
mood
Publicité
Posté le 07-01-2003 à 23:49:55  profilanswer
 

n°281623
beleg
黑社會
Posté le 07-01-2003 à 23:51:31  profilanswer
 

http://www.mysql.com/doc/en/Group_by_functions.html
 
[:sh@rdar]


Message édité par beleg le 07-01-2003 à 23:52:22
n°281632
mecano1
Posté le 08-01-2003 à 00:07:00  profilanswer
 

je suis allé sur ce site, c'est interressant en effet, j'ai vu la commande AVG() qui permettrait de faire une moyenne si j'ai bien compris, elle peux me servir dans ce cas et si oui il faudrait me donner un exemple concret pour que je comprenne, merci.

n°282265
mecano1
Posté le 08-01-2003 à 23:22:55  profilanswer
 

$calcul_moyenne = mysql_query("SELECT nom, avg(result_classe) from $table GROUP BY nom ORDER BY avg(result_classe)" );
 
while ($classement = mysql_fetch_row($calcul_moyenne))
{
echo "
<font face='Arial' size='5'>
<center>
<TABLE CELLPADDING=4 CELLSPACING=0 width='60%'>
<TR BGCOLOR='#454545'>
<TD>
<b><FONT COLOR='#5BFF79'>$classement</FONT></b></font>
</TD>
</TR>
</table>
</center>
</font>
";
}
 
--------------------------------
voilà j'ai essayé de mettre en pratique, j'ai donc le premier champs qui s'appelle "nom" et celui ou il y a les notes qui s'appelle "result_classe".
Ensuite je me suis dit que j'allait faire une boucle avec fetch_row pour tous les afficher, mais je me retrouve avec une erreure:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
ensuite j'ai essayé avec fetch_array mais c'est pareil.
Après ça j'ai essayé d'afficher avec $classement[0], mais pas de changement.
C'est juste ce que j'ai écrit ou alors il y a une boulette?
En tout cas je n'ai rien trouvé sur le détail de cette fonction AVG() qui m'a l'air bien pratique :p

n°282271
sielfried
Posté le 08-01-2003 à 23:42:18  profilanswer
 

mecano1 a écrit :

$calcul_moyenne = mysql_query("SELECT nom, avg(result_classe) from $table GROUP BY nom ORDER BY avg(result_classe)" );


 
Tu ne peux utiliser une fonction d'agrégat que dans la clause SELECT, d'où l'erreur que tu avais je pense. Essaie ça :
 

mysql_query("SELECT nom, avg(result_classe) AS moyenne from $table GROUP BY nom ORDER BY moyenne" );



---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°282278
beleg
黑社會
Posté le 09-01-2003 à 00:01:05  profilanswer
 

jose pensé que tu as testé ta requete  :whistle:  
 
donc je passe directement a :
 

Code :
  1. <b><FONT COLOR='#5BFF79'>".$classement["moyenne"]."</FONT></b></font>


 

Citation :

Note that if you are using MySQL Version 3.22 (or earlier) or if you are trying to follow ANSI SQL, you can't use expressions in GROUP BY or ORDER BY clauses. You can work around this limitation by using an alias for the expression:  
 
mysql> SELECT id,FLOOR(value/100) AS val FROM tbl_name
    ->        GROUP BY id,val ORDER BY val;


[:sh@rdar]


Message édité par beleg le 09-01-2003 à 00:04:12
n°282280
mecano1
Posté le 09-01-2003 à 00:03:30  profilanswer
 

sielfried je t'aime, si si :love:
ca fonctionne trop bien comme ça, mais j'avoue ne pas comprendre pourquoi, mais bon je suis trop content :bounce:
merci encore


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  calcul de moyenne sur une table sql [ résolu ]

 

Sujets relatifs
insertion dans une table (access)[resolu]ADO Access SQL : filtre
[Delphi Studio 7 Personnal ] et les composants [Indy] RESOLU =)Pb avec la fonction highlight_string(). [RESOLU]
[PHP] Calculer le nombre de jours entre deux dates ? [résolu]Besoin d'aide pour un forum... [auto-résolu]
[mySQL] Problème de requête avec count(*) [résolu][PHP] Problème de "mise à jour" [résolu]
.htaccess inopérant bourdail -- resolu !Probleme avec des espaces... [ Resolu ]
Plus de sujets relatifs à : calcul de moyenne sur une table sql [ résolu ]


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