Page 1 sur 1

Comment faire la somme des enregistrements d'un champ

Posté : 13 déc. 2005, 19:00
par Nico128
Salut tout le monde !

Alors voilà, j'ai un champ qui s'apelle "note". On peux y enregistrer un nombre de 1 à 20.

J'aurais voulu savoir si il était possible, et si oui comment, d'additionner tous les nombre qui se trouve dans le champ "vote" ?

J'ai chercher sur le forum, mais j'ai pas du utiliser les bon mot clé, surement parce que j'en ai aucune idée comment ça se présente.

Voila, merci d'avance :D

[Edite] 2sec je crois que j'ai trouvé comment faire, je test et si ca marche j'efface celui-ci

Posté : 13 déc. 2005, 19:17
par jobherzt
tu as une fonction sum dans la syntaxe sql. :

select sum(note) from maTable

Posté : 13 déc. 2005, 19:47
par Nico128
J'ai aussi lu sa, alors j'ai essayé :
$sql2 = "SELECT SUM(note_commentaire) FROM test_commentaire_64";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error()); 
while($data = mysql_fetch_assoc($req2)) 
{
echo $data['note_commentaire'];
}
¨

Mais :
Erreur SQL !
SELECT SUM(note_commentaire) FROM test_commentaire_64'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Je vois pas trop le problème... :?

Merci d'avance

Posté : 13 déc. 2005, 20:07
par jobherzt
questionidiote mais on ne sais jamais : est tu sur que 'note' est un entier dans ta base ? sinon ca peut creer des pbs. sinon, la... je ne vois pas trop !

Posté : 13 déc. 2005, 20:08
par Nico128
Il me semble avoir aussi lu qu'il fallait utilisé GROUP BY alors jai modifier :
$sql2 = "SELECT SUM(note_commentaire) FROM test_commentaire_64 GROUP BY pseudo";
Mais rien ne s'affiche. J'ai mis avec echo :
echo $data['note_commentaire'];
Il faut mettre autre chose ?

Posté : 13 déc. 2005, 20:09
par Nico128
questionidiote mais on ne sais jamais : est tu sur que 'note' est un entier dans ta base ? sinon ca peut creer des pbs. sinon, la... je ne vois pas trop !
enfaite dans mon 1er poste je disais qu'il s'apellais "note" mais en vrai il s'apelle "note_commentaire". Désolé

Posté : 13 déc. 2005, 20:15
par jobherzt
effectivement, il peut falloir utiliser group by. tu ne dis pas si tu as une erreur quand tu essaies ? sinon, pour pouvoir recuperer le resultat, le plus simple est de lui donner un nom. en effet note_commentaire ne peut pas designer sum(note_commentaire). donc il faut utiliser :

select sum(note_commentaire) as somme ...

puis echo data['somme'];

Posté : 13 déc. 2005, 20:21
par Nico128
Ah oui là ça affiche bien des chiffre. Mais je vois pas du tout en raport avec quoi. Quand je change GROUP BY pseudo en GROUP BY et autre chose ça me donne un autre nombre.

Posté : 13 déc. 2005, 20:31
par Nico128
Ahh finalement j'ai compris, ca marche ! C'est :
$sql2 = "SELECT SUM(note_commentaire) as somme FROM test_commentaire_64";
Sans le GROUP BY mais avec le AS

Merci :wink:

Posté : 13 déc. 2005, 20:33
par jobherzt
comme son nom l'indique, group by regroupe les resultats. donc si tu avais plusieurs notes par pseudo, et que tu utilisais group by pseudo, effectivement ca devrais te donner un resultat faux. je savais que le AS etait indispensable pour que tu puisses ensuite manipuler les donnees, mais je pensais que le pb apparaitrais au niveau de php, pas directement au niveau de la requete. content que ca aie marche !

Posté : 13 déc. 2005, 20:40
par Nico128
Ah oké, merci pour l'information :D

@+