Page 1 sur 1

Additioner les valeurs d'un champ d'un table

Posté : 07 nov. 2006, 20:22
par nikitou
Bonjour

J'ai des prix entrés dans ma table mysql et j'aimerais faire une requete pour que sa additionne tous les champs en gros pour faire un total comment faire ? que dois-je utiliser ?

Pour présision dans ma table les valeur sont du genre 20€ , 125.15€ etc...

Merci d'avance à tous :wink:

Posté : 07 nov. 2006, 20:33
par RilaX
J'ai eu le meme besoin, et il se trouve qu'en fait c'est tout con :

Code : Tout sélectionner

SELECT SUM(TonChamp) FROM TaTable WHERE Condition
Et voila ! ;)

Posté : 07 nov. 2006, 20:35
par nikitou
oui c'est ce que j'ai fait mais comment enlevé les € car sinon le calcul ne peux pas se faire :cry:

Merci d'avance :P

Posté : 07 nov. 2006, 20:37
par Hubert Roksor
SUM() ne doit être utilisé que sur des valeurs numériques, il faut donc que ton champs soit de type INT (TINYINT, SMALLINT, etc...) ou FLOAT (puisque je vois que tu utilises des décimaux). Charge reste à ton application d'afficher le symbole monétaire.

Posté : 07 nov. 2006, 20:43
par nikitou
J'ai fait ça :
$affiche = mysql_query("SELECT SUM(compteur) FROM test");
echo "somme totale : $affiche";
Mais rien ne s'affcihe enfin j'ai marqué : Resource id #3

Dans ma table j'ai :

20
20
20

ça devrait donc m'afficher 60

J'ai fait une erreur ?

et j'ai mis en Float :wink:


Champ Type Interclassement .... etc
id int(11) Non auto_increment
compteur float Non 0

Posté : 07 nov. 2006, 20:54
par RilaX
il te faut un mysql_fetch_array :

Code : Tout sélectionner

$reponse = mysql_query("SELECT SUM(compteur) FROM test"); while ($affiche=mysql_fetch_array($reponse)){ echo "somme totale : ".$affiche; }
Et désolé, javais pas vu les € dans ton champs ... mais je te déconseille de les mettre, vu que tu peux toujours les rajouter quand tu affiche les resultat de tes sommes.

Posté : 07 nov. 2006, 20:59
par nikitou
Bien joué merci

Juste une tit précision c'était
echo "Montant total : $affiche[0]";
sinon ça affiche array :P

Merci a vous deux :wink: :wink: :lol: 8)

Bonne soirée

Ah oui aufait ça prend en compte les € donc pas besoin de les virés ça fontionne nickel :D :D :D

Posté : 07 nov. 2006, 22:58
par iclo
Mais pourquoi stoker des prix sous forme de chaine de caractères ? ça risque de poser pas mal de problème, sans compter la probabilité que cela prenne plus de place...

Posté : 07 nov. 2006, 23:38
par albat
la probabilité que cela prenne plus de place...
Soit X, l'évènement "prend plus de place".
Quand p(X)=1, on peut parler d'évènement certain. :lol:

Je ne vois aucune explication capable de justifier dans cet exemple précis
l'utilisation d'un champ de type chaîne pour stocker des données exclusivement numériques... :-k