[MySQL] Addition PHP ?

Résolu
Bonjour,
Je cherche a additioner une Valeur (déjà présente dans une base Mysql) à un nombre à l'aide d'une requete SQL :

$sql ='UPDATE iConomy SET balance="'.$balance.'+200" WHERE username="'.$_POST['username'].'"'; 


"$balance" est la valeur initiale
"200" est la valeur que je veut lui ajouter

Mais sa ne fonctionne pas, quelqu'un sais pourquoi ou comment faut il proceder pour faire une addition php ?

Merci d'avance.

4 réponses

  1. Bonjour

    Supposons que $balance vaut 300 au départ
    Tu pourrais faire en mysql :
    $sql ='UPDATE iConomy SET balance=300+200 WHERE username="'.$_POST['username'].'"';
    ou
    $sql ='UPDATE iConomy SET balance=500 WHERE username="'.$_POST['username'].'"';

    Mais toi tu fais
    $sql ='UPDATE iConomy SET balance="300+200" WHERE username="'.$_POST['username'].'"';
    Tu ne fais pas une addition, mais une concaténation de chaînes.

    Tu peux faire par exemple
    $sql ='UPDATE iConomy SET balance='.$balance+200." WHERE username="'.$_POST['username'].'"';
    1. Pour :
      $sql ='UPDATE iConomy SET balance=300+200 WHERE username="'.$_POST['username'].'"'; 
      ou 
      $sql ='UPDATE iConomy SET balance=500 WHERE username="'.$_POST['username'].'"'; 

      Sa fonctionne, mais pour :

      $sql ='UPDATE iConomy SET balance='.$balance+200." WHERE username="'.$_POST['username'].'"';


      J'obtient l'erreur
      Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /public_html/x/test.php on line 16

      Je débute mais se serais pas un problème de " ou de ' ? :/

      Merci
      1. ps : La valeur initiale de balance est bien un nombre :)
    2. Erreur dans les ' et ". Faute d'inattention de ma part

      $sql ='UPDATE iConomy SET balance='.$balance+200.' WHERE username="'.$_POST['username'].'"';

      Mais si je peux me permettre, tu partages la faute. Tu as le droit, pour ne pas dire le devoir, d'avoir un regard critique sur les solutions qu'on te propose ;)
      1. Pas du tous !
        Pourquoi :
        '.$balance+200.'
        ?

        '.$variable.'
        permet l'interprétation d'une variable dans la requête, or +200 n'est pas une variable.

        Essaies plutôt :
        $sql ='UPDATE iConomy SET balance='.$balance.'+200' WHERE username="'.$_POST['username'].'"';