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 :

Variable invisible pour requête SQL !?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut Variable invisible pour requête SQL !?
    Bonjour,
    J'ai un problème bien curieux; je récupére des variables de sessions qui existent bien, puisque elles s'affichent avec un echo() mais par contre lorsque je les insére dans une requête sql, elles sont nulles !
    Au début de mon script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_start();
    $identifiant = $_SESSION['login'];
    et un peu plus loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "UPDATE tbl_user SET Nom = '$identifiant' WHERE identifiant = 'azerty' LIMIT 1";
    La requête fonctionne mais le champ reste vide !
    A contrario si je déclare une variable bidon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    session_start();
    $variablebidon = "Roger";
    Le champ est remplis
    C'est à n'y plus rien comprendre...

    D'avance merci pour votre aide

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    donne quoi ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut
    Non pour la durée de vie de session c'est ok.
    Par contre un echo() me renvoie bien mes valeurs :
    UPDATE tbl_user SET Nom = 'Login' WHERE identifiant = 'azerty' LIMIT 1

    Je viens de remarquer un truc, si j'execute le script deux fois de suite, alors la variable est prise en compte !?
    Première éxécution : champ vide
    Deuxième exécution : champ remplis avec la valeur de $identifiant

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    peut etre qu'entre temps ta session se termine. essai de voir si tes sessions n'ont pas une durée de vie

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Par défaut
    D'après ton message initial, tout devrait marché si $identifiant est bien rempli.

    Fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $identifiant;
    Juste avant la requète pour vérifier que la varible est toujours pleine...

    Oups! tu as posté entre temps...

    Bon, c'est peut être un problème dans la BDD, tu as 2 fois la meme ligne, tu la remplie une fois, et, tu regarde la mauvaise...

    Retire le LIMIT 1 pour voir...

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Si tu passes cette requête sous phpMyAdmin, est-ce que tu as le comportement attendu ?

    Sinon mon petit doigt me souffle que peut-être tu récupères les infos à afficher avant de modifier la base...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 224
    Par défaut
    Mais pourtant, si il nous dit que ca requète est complète au moment de l'envoyer, ca devrait marcher!

    Et le reste du code, ca donne quoi?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut
    kalash_jako > avec ou sans LIMIT 1 ca ne change rien, idem dans la bdd je n'ai pas deux fois la même ligne.

    Mr N. > Heu je ne comprends pas bien ta remarque ? le script se déroule comme ça :
    - démarrage de la session
    - récupération de la variable
    - requête sql
    - echo
    C'est correct ?!

    Sous phpMyAdmin ca fonctionne du premier coup

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 18
    Par défaut
    Merci de vous pencher sur mon problème, c'est cool
    Alors le code je l'ai simplifié au maximum pour trouver d'ou venait l'erreur :
    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
     
    <?php
    session_start();
    $identifiant = $_SESSION['login'];
    $variablebidon = "Roger";
    //require 'prive/verifconnexion.php';
    require_once('prive/db.inc.php');
    //
    ConnectdB();
            $req = "UPDATE tbl_user SET Nom = '$identifiant' WHERE identifiant = 'azerty'";
            $ret = mysql_query ($req) or die (mysql_error ());
            echo($req);
            return true;
            mysql_close();
    ?>

  10. #10
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Et alors ? Elle venait d'où ?

Discussions similaires

  1. [AC-2007] Récupération variable VBA pour requête SQL
    Par Axe_Débutant dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 20/10/2012, 09h01
  2. Réponses: 2
    Dernier message: 12/10/2012, 08h04
  3. Syntaxe pour requête SQL avec variables
    Par molibri dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2010, 14h50
  4. Récupération de variables de menus déroulants pour requète SQL
    Par Thibaut_Dupont dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 14h24
  5. [MySQL] Problème récupération variable pour requête SQL !!
    Par mLk92 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2006, 16h08

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