Comment additioner des nombres en php?

Eléphant du PHP | 91 Messages

19 août 2009, 14:47

Bonjour,

Je travaille sur une nouvelle application:

A chaque fois qu'un internaute envoie un message, des points lui sont attribués. Pour cela, j'utilise un script INSERT INTO pour ajouter dans une table les points. Jusque là, tout est OK.

Sauf que je ne sais pas comment faire pour additionner le nombre de chaque point entrer dans la table pour ensuite afficher le total

Quelqu'un serait il comment on fait cela?

Merci

Eléphanteau du PHP | 17 Messages

19 août 2009, 14:49

je suis pas sûr de comprendre...

tu peux faire un query pour récupérer la valeur initiale du champs puis ajouter à cette valeur le nombre de points que tu lui attribues pour son message... à partir de là, ta variable contenant le nombre de points peut être affichée et utilisée pour mettre à jour via une nouvelle query la valeur initiale.

Eléphant du PHP | 91 Messages

19 août 2009, 15:05

je suis pas sûr de comprendre...

tu peux faire un query pour récupérer la valeur initiale du champs puis ajouter à cette valeur le nombre de points que tu lui attribues pour son message... à partir de là, ta variable contenant le nombre de points peut être affichée et utilisée pour mettre à jour via une nouvelle query la valeur initiale.
Non non non,

je veux seulement additionner toutes les valeurs contenue de la table et les afficher. Rien d'autre

Mais ça, je sais pas comment m'y prendre pour le faire

Avatar du membre
ViPHP
ViPHP | 3008 Messages

19 août 2009, 15:07

Je pense que tu veux faire un SUM et GROUP BY :

http://www.w3schools.com/sql/sql_groupby.asp

Mammouth du PHP | 2937 Messages

19 août 2009, 15:14

Autre possibilité, toujours en ne sollicitant que le langage SQL :

Code : Tout sélectionner

UPDATE ta_table SET ta_colonne = ta_colonne + nombre de points à ajouter WHERE ta condition

Eléphant du PHP | 91 Messages

22 août 2009, 17:50

J'ai trouver quelque chose
$query = "SELECT count(point) from Game  where myusername='{$_SESSION ['myusername']}'";
$result = mysql_query($query) or die (mysql_error());
$total=mysql_fetch_row($result);
Puis j'affiche le résultat
<? echo $total[0];?>
Sauf que ce coup là, il compte les colonnes au lieu de compter les points! #-o

Comment pourrais je faire pour qu'il compte les points et non les colonnes selon vous?

Mammouth du PHP | 2937 Messages

22 août 2009, 18:01

Et en procédant comme suit ?
$points_a_ajouter = int (800); // Par exemple
$query = "UPDATE Game SET point = point + ".$points_a_ajouter." WHERE myusername='".$_SESSION['myusername']."'";

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 août 2009, 22:15

Tu peux aussi utiliser la fonction SUM de sql que t'a signalé charabia...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 91 Messages

23 août 2009, 22:39

C'est bon, j'ai trouvé
$sql = "SELECT SUM(point) FROM Game where myusername='{$_SESSION ['myusername']}'";
$res = mysql_query($sql) or die(mysql_error());
$total = mysql_result($res,0); 
Puis j'affiche le résultat
<? echo $total;?>
Maintenant, il me reste plus qu'a afficher la valeur 0 si il n'y a rien a additionner.
<? 
echo $total; 

if (empty($total)) { 
echo $total="0";
} 
?>
Merci a tous pour votre aide !!!!!

ViPHP
AB
ViPHP | 5818 Messages

24 août 2009, 00:43


Maintenant, il me reste plus qu'a afficher la valeur 0 si il n'y a rien a additionner.
<? 
echo $total; 

if (empty($total)) { 
echo $total="0";
} 
?>
Merci a tous pour votre aide !!!!!
Tu pourrais faire plus concis pour le même résultat.
Si c'est uniquement pour l'affichage :
echo !empty($total)? $total : 0;
Si pour l'affichage et utilisation ultérieure de la variable $total :
$total = !empty($total)? $total : 0;
echo $total;
//ou variante des deux lignes ci-dessus mais que je trouve moins lisible
echo !empty($total)? $total : $total = 0;

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 août 2009, 22:28

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...