IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'addition


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2015
    Messages : 1
    Par défaut Problème d'addition
    Bonjour, j'ai actuellement un petit problème d'addition de données dans ma base SQL. La structure de mon code me semble pourtant correcte je ne comprends pas réelement mon erreur...

    Tout d'abord voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    				if($pts_t > $pts) {
    					echo stripslashes('<div class="alert alert-danger alert-dismissable">Vous n\'avez pas assez de points.</div>');
    				} else {
     
    					$newbalance1	=	$pts-$pts_t;
                        $sql			=	"UPDATE {$cfg_prefix}players_stats SET Cheque='$newbalance1' WHERE Name='$pseudo'";
                        $result			=	mysql_query($sql);
    					$req2 = mysql_fetch_array(mysql_query("SELECT * FROM `players_stats` WHERE `Name`='$player'"));
    					$player_old		=	$req2['Cheque'];
    					$newbalance2	=	$player_old+$pts_t;
                        $sql2			=	"UPDATE {$cfg_prefix}players_stats SET Cheque='$newbalance2' WHERE Name='$player'";
                        $result2		=	mysql_query($sql2);
                        echo stripslashes('<div class="alert alert-success alert-dismissable">Vous avez transféré <b>'.$pts_t.'</b> point(s) à <b>'.$player.'</b>.</div>');
     
    				}
    Ce que c'est sensé faire : Envoyer x points à un utilisateur y

    Le problème (ce que ça fait vraiment) : le nombre de points envoyé est bien soustrait mais celui qui est sensé recevoir les points ne les reçoit pas vraiment. En fait $player_old ne s'additionne pas avec $pts_t mais la donnée $pts_t remplace la donnée .

    Exemple : Je décide d'envoyer 5 points à quelqu'un qui en a deja deux.
    - Mon compte est bien soustrait des 5 points
    - Normalement, mon ami en a 2, je lui en envois 5, donc 2 + 5 = 7
    - Sauf qu'ici, les 2 points qu'il a déjà sont remplacés par les 5 que j'envois, il n'a donc que 5

    J'en appel donc à vous, si quelqu'un voit d'ou vient le probleme ? J'ai retourné le probleme dans tout les sens et je ne comprends pas d'ou ça peut venir ...

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    J'ai retourné le probleme dans tout les sens
    Pas tant que ça je pense.
    Le debugage minimum à faire aurait été de contrôle ce que valait $newbalance2.
    En toute logique tu aurais trouvé qu'il valait 5, peut être parce que $req2['Cheque'] n'existe pas (la colonne s'appelle peut être "cheque" par exemple).

    Mais ton code est inutilement compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    else {
    	$sql = "UPDATE {$cfg_prefix}players_stats SET Cheque = Cheque - $pts_t WHERE Name= '" . mysql_real_escape_string($pseudo) . "'";
    	$result = mysql_query($sql);
    	$sql2 = "UPDATE {$cfg_prefix}players_stats SET Cheque = Cheque + $pts_t WHERE Name='" . mysql_real_escape_string($player) . "'";
    	$result2 = mysql_query($sql2);
    	echo '<div class="alert alert-success alert-dismissable">Vous avez transféré <b>'.$pts_t.'</b> point(s) à <b>'.$player.'</b>.</div>';
    }
    pourquoi mettre des stripslashes dans tes echo ?

    Au passage l'extension mysql est obsolète, utilise PDO.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [PHP/MySQL] Probleme avec ' (quote)
    Par xtaze dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 02/11/2006, 10h00
  2. PHP-MySQL : probleme de connexion
    Par rockingstone dans le forum Outils
    Réponses: 9
    Dernier message: 03/07/2006, 13h33
  3. [SGBD] [PHP/MySQL] Problème de boucles
    Par projetM dans le forum Requêtes
    Réponses: 5
    Dernier message: 24/05/2006, 18h11
  4. Réponses: 6
    Dernier message: 15/05/2006, 10h40
  5. PHP & MySQL : Problème pour compter nombre de tuples ?
    Par ExSter dans le forum Requêtes
    Réponses: 6
    Dernier message: 09/05/2006, 23h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo