Comment faire la somme des enregistrements d'un champ

Eléphant du PHP | 246 Messages

13 déc. 2005, 19:00

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

Eléphant du PHP | 383 Messages

13 déc. 2005, 19:17

tu as une fonction sum dans la syntaxe sql. :

select sum(note) from maTable

Eléphant du PHP | 246 Messages

13 déc. 2005, 19:47

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

Eléphant du PHP | 383 Messages

13 déc. 2005, 20:07

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 !

Eléphant du PHP | 246 Messages

13 déc. 2005, 20:08

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 ?
Modifié en dernier par Nico128 le 13 déc. 2005, 20:10, modifié 1 fois.

Eléphant du PHP | 246 Messages

13 déc. 2005, 20:09

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é

Eléphant du PHP | 383 Messages

13 déc. 2005, 20:15

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'];

Eléphant du PHP | 246 Messages

13 déc. 2005, 20:21

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.

Eléphant du PHP | 246 Messages

13 déc. 2005, 20:31

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:

Eléphant du PHP | 383 Messages

13 déc. 2005, 20:33

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 !

Eléphant du PHP | 246 Messages

13 déc. 2005, 20:40

Ah oké, merci pour l'information :D

@+