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

PHP & Base de données Discussion :

[SQL] Problème Update sql et variable php


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut [SQL] Problème Update sql et variable php
    Bonjour,

    voilà j'ai un script qui récupére la valeur d'un champ dans ma base, puis j'ajoute un nombre à la valeur et je veux réinjecter le résultat dans la base, seulement au lieu de me renvoyer la somme il m'envoye 0

    Voici mon petit truc bancale :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
     
    include ('config.php');
     
    $sql = 'SELECT TOTAL FROM `points_pilotes` WHERE pilotes=\'F. ALONSO\' ';
    $result2 = mysql_query($sql, $link) or die($sql . " - " . mysql_error());
    $test = mysql_fetch_array($result2);
    $test = $test['TOTAL'];
     
    echo '<br>'.'recup de la valeur total : '.$test.'<br>'; // Valeur 20 ici
     
    $test = $test+10;
     
    echo '<br>'.'nouvelle valeur total : '.$test.'<br>'; // Valeur 30 ici
     
    $update = 'UPDATE `points_pilotes` SET `TOTAL` = "$test" WHERE `classement` = 1 ';
    $result3 = mysql_query($update, $link) or die($update . " - " . mysql_error());
     
    $new = 'SELECT TOTAL FROM `points_pilotes` WHERE pilotes=\'F. ALONSO\' ';
    $result4 = mysql_query($sql, $link) or die($new . " - " . mysql_error());
     
    $test2 = mysql_fetch_array($result4);
    $test2 = $test2['TOTAL'];
     
    echo '<br>'.'recup de la new valeur : '.$test2.'<br>'; // Valeur 0 ici
     
    ?>
    Voilà si vous pouviez m'aider pour savoir pourquoi il me dit 0

    Merci à tous, bon WE.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il ne doit pas aimer les doubles quotes autour de $test dans la requête UPDATE. Vous êtes obligés de vous y en prendre en deux fois pour incrémenter cette valeur (SELECT puis UPDATE au lieu d'un simple UPDATE) ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    avec les simples quotes '$test' j'ai une erreur :

    Parse error: parse error, unexpected T_VARIABLE in /test.php on line 17

    et avec \'$test\' j'ai le même problème qu'avec des doubles quotes.

    Comment faire pour le select + update ?

    Merci pour ta réponse !

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La variable $test n'est pas interpolée dans la requête update car cette chaîne est délimitée par des apostrophes : utilisez soit une concaténation ou des guillemets doubles. De plus, les nombres (les entiers tout du moins) n'ont pas besoin d'être encadrés par des quotes.

    Pour faire directement la requête update :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE points_pilotes SET TOTAL = TOTAL + 10 WHERE pilotes='F. ALONSO';

Discussions similaires

  1. Problème update sql
    Par hugo7 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 12/11/2009, 20h32
  2. [SQL] Problème requêtes SQL / php
    Par laulau37 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/07/2007, 15h48
  3. [SQL] problème update bdd
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/06/2007, 17h59
  4. [SQL] problème de passage de variable
    Par igaurillac dans le forum PHP & Base de données
    Réponses: 33
    Dernier message: 09/02/2007, 11h06
  5. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41

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