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 :

Réutiliser une variable dans une requête SQL


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Réutiliser une variable dans une requête SQL
    Bonjour,

    J'aimerais réutiliser une variable que j'utilise pour une connexion dans une requête SQl Update:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <form action="" method="post" name="point">
    <?php
     
    // ma variable se trouve dans $_SESSION['nom'];
     
    mysql_query("UPDATE utilisateurs SET point=point+15 WHERE nom=????");
     
    ?>//  je ne sais pas quoi mettre a la place des 4 points d'interrogations.
     
    <input type="submit" name="Submit" value="Se connecter">
    </form>
    Voila, j'espère que j'ai été plus ou moins clair
    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    Tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    mysql_query("UPDATE utilisateurs SET point=point+15 WHERE nom=' ".$_SESSION['nom']." ' ");
    Voila

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    j'ai essayé mais ca marche pas. il me rajoute pas les 15

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    En fait j'avais pas vu ton autre erreur.
    Tu dois faire un " select point ..." dans ta base pour récupéré ta valeur. Ensuite tu la stocke dans une variable par exemple $point. Après tu fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    mysql_query("UPDATE utilisateurs SET point=' ".$point." ' WHERE nom=' ".$_SESSION['nom']." ' ");
    Voila

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    J'ai oublié avant d'écrire mysql_query etc...
    fais $point+=15;

    Voila

  6. #6
    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 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Sancho_54
    Tu dois faire un " select point ..." dans ta base pour récupéré ta valeur. Ensuite tu la stocke dans une variable par exemple $point.
    La requête SELECT n'est pas nécessaire pour faire une requête UPDATE en vue d'une simple incrémentation ou décrémentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE utilisateurs SET point=point+15 WHERE nom=' ".$_SESSION['nom']." ' ");

    Julp.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    Ba il vien de dire que ca marche pas comme ca

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ca marche toujours pas , pourtant qd je tape le contenu de la variable directement ca marche

    mysql_query("UPDATE utilisateurs SET point=40 WHERE nom='kerger'");

    J'ai afficher la variable et c'est bien kerger qui est dedans

  9. #9
    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 778
    Points
    17 778
    Par défaut
    Citation Envoyé par Sancho_54
    Ba il vien de dire que ca marche pas comme ca
    ça m'apprendra à ne pas tout lire !

    Rajouter un or die(mysql_error()) derrière l'appel à mysql_query s'il y a une erreur au niveau SQL/MySQL il vous la donnera. Par contre vous n'avez pas omis l'appel à la fonction session_start ? Si vous imprimez (echo) $_SESSION['nom'] il vous affiche bien ce à quoi vous vous attendez ?


    Julp.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 199
    Points : 164
    Points
    164
    Par défaut
    Ca aussi javais pas pensé a session_start()

    On est quitte

  11. #11
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut merci
    Ca y est j'ai trouvé grace a vos réponses Merci beaucoup

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut ça ne marche pas
    Bonsoir tout le monde

    J'ai essayé toutes vos propositions de réponse mais ça n'a pas marché.

    Il y a t-il une erreur dans mon code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $login=$_POST['login'];
    $pass=$_POST['pass'];
    $requete="SELECT * FROM admin
    WHERE login='.$login' AND pass='.$pass'";
    $result=mysql_query($requete);
    if (mysql_num_rows($result)!=0)
    {
        echo"Bienvenue administrateur  $login";
    }

  13. #13
    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 778
    Points
    17 778
    Par défaut
    Oui dans la requête pour commencer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT * FROM admin WHERE login='$login' AND pass='$pass'";
    Par rapport à cela pensez à faire suivre la fonction mysql_query (essentiellement) de or die(mysql_error()); qui vous permettra d'identifier ce genre d'erreur. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = mysql_query('SELECT * FROM ma_table;') or die(mysql_error());
    Décidément on a pas fini de le répéter !


    Julp.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par julp
    Par rapport à cela pensez à faire suivre la fonction mysql_query (essentiellement) de or die(mysql_error()); qui vous permettra d'identifier ce genre d'erreur. Décidément on a pas fini de le répéter !
    Julp.
    Je suis d'accord par rapport au mysql_querry($requete)or die(mysql_error());

    Mais quand je l'applique chez moi il ne renvoie aucune erreur. Par exemple pour mon code j'avais fait une concaténation '.$login' et '.$pass' et le die(mysql_error()); n'a rien renvoyé. Je me suis alors dit que c'était une erreur de php et non de mysql et en faisant '$login' et '$pass',ou en déspécialisant la double quote comme ceci: \"$login\" et \"$pass\" ça a marché.

    Merci à tous pour votre contribution et merci à julp

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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