Traitement chiffre depuis BdD

Bonjour,

Je suis en train de faire un système pour que les gens achète de la monnaie en jeu sur mon site. Voici mon code :


$reponse = $rox->query('SELECT balance FROM iConomy WHERE username = \'' . $_SESSION['UserName'] . '\'');
$donnees = $reponse->fetch();
	
$total = intval($donnees['balance']) ++ 300;
	
$rox->exec('UPDATE iConomy SET balance = ' . $total . ' WHERE username = \'' . $_SESSION['UserName'] . '\'');



Je pense que le problème est que $donnees['balance'] est une chaîne de caractère et non un chiffre. J'y ais donc mis un intval() mais rien à faire. Voici l'erreur :

Fatal error: Can't use function return value in write context


Merci d'avance de vos réponses !

5 réponses

  1. Oops !
    Je me suis trompé de section, si un modérateur passe par la, peut-il mettre ce topic dans la section Programmation svp ?
    Merci !
    1. Contributeur
      Hello,

      $total = intval($donnees['balance']) ++ 300;

      Que signifie ce ++ 300 ?
      1. En gros j'aimerais prendre le chiffre de ma base de donnée ($donnees['balance']), lui ajouter 300 (d'ou le ++ 300) puis le remettre dans ma base de donnée.
        1. Contributeur
          Hello,
          Mais pourquoi mettre deux '+' ?!
          1. Salut,
            En effet ++ représente l'incrémentation, pour faire une addition un seul "plus" suffit.

            //Je pense que le problème est que $donnees['balance'] est une chaîne de caractère et

            Ni php ni SQL ne sont typés donc toutes les variables sont considérées comme des chaînes de caractère. A moins que la variable contienne autre chose que des nombres ça ne devrait pas poser de problèmes, sinon comme disait mon prof de math au collège on peut pas additionner des choux et des carottes.