Additioner les valeurs d'un champ d'un table

Eléphant du PHP | 186 Messages

07 nov. 2006, 20:22

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:

Eléphanteau du PHP | 38 Messages

07 nov. 2006, 20:33

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 ! ;)

Eléphant du PHP | 186 Messages

07 nov. 2006, 20:35

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

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

07 nov. 2006, 20:37

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.

Eléphant du PHP | 186 Messages

07 nov. 2006, 20:43

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

Eléphanteau du PHP | 38 Messages

07 nov. 2006, 20:54

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.

Eléphant du PHP | 186 Messages

07 nov. 2006, 20:59

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

ViPHP
ViPHP | 2144 Messages

07 nov. 2006, 22:58

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...

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

07 nov. 2006, 23:38

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