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 :

Update : valeur de la variable perdue [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut Update : valeur de la variable perdue
    Bonjour,

    Voila maintenant 2 heures que je bloque sur un problème d'update!

    Voila je recupère un champs depuis une page php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $civilite = $_POST['civilite'];
    ensuite je l'affiche pour voir que c'est bien ce que je veux:
    (Par chance il s'affiche parfaitement!)

    Ensuite je fais mon update!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req="UPDATE formulaire SET civilite='$civilite' where id='$id_dev' ";
    $sql=mysql_query($req) or die ("Prout!!!!! $req");
    Voilà, donc malheureusement il fait bien l'update, sauf qu'il me supprime ma valeur pour laisser un espace vide au lieu de mettre la valeur de ma variable...

    Quand j'execute la même requete avec phpMyAdmin et bien par magie ca fonctionne... Sauf que c'est pas le but

    Ah oui aussi, quand je fais $civilite="Blabla"; et ensuite je fais mon update ben la ca marche :'(

    Je ne comprends donc pas pourquoi il ne veut pas insérer une variable recuperer par $_POST[' '] ...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut
    Pour vous donner un petit aperçu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $id_dev = $_GET['id'];
    $civilite = $_POST['civilite'];
    echo"$civilite";  //la ca m'affiche bien Monsieur
     
    $req= "UPDATE formulaire SET civilite='$civilite' where id_devis='$id_dev' ";
    $sql=mysql_query($req) or die ("Erreur update: $req");
     
     
    echo"Update réussie";  //la ca m'affiche bien Update réussie
    echo"$req";  //et le pire ca m'affiche bien: UPDATE formulaire SET civilite='Monsieur' where id_devis='12067'
    Voilà, sauf que dans la base de données ca me met un espace a la place de Monsieur.

    Merci de me renseigner parce que je vais m'arracher les cheveux dans pas longtemps!

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    salut,

    essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $change = "civilite = '$civilite'";
    $req= "UPDATE formulaire SET $change where id_devis='$id_dev' ";

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 123
    Par défaut
    Salut,
    vérifie la taille du champ dans ta table au cas ou( varchar 10 ou >)
    puisque ta requête me semble parfaite.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    salut,

    essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $change = "civilite = '$civilite'";
    $req= "UPDATE formulaire SET $change where id_devis='$id_dev' ";
    J'ai essayé, ca ne marche pas

    Et pas de problème d'espace dans ma base de données j'ai testé en varchar(255) et toujours pas.

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonsoir,

    Normal que ca ne fonctionne toujours pas le code que l'on t'as donné fait exactement la même chose que ce que tu as fait, mais de manière triviale..

    Une possibilité est que tu n'affectes pas le changement au bon enregistrement. Vérifie donc la valeur de $id_dev. De plus, si id_devis est un entier, alors il n'est pas nécessaire de l'encapsuler dans des guillemets. Une autre est que ton identifiant n'est pas présent dans l'URL.

    Aussi, tu as la possibilité de voir si ton update a affecté des enregistrements, tu peux essayer le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $id_dev = $_GET['id'];
    $civilite = $_POST['civilite'];
    echo 'Identifiant du devis : '.$id_dev.'<br/>';
     
    $sql=mysql_query('UPDATE `formulaire` SET civilite="'.mysql_real_escape_string($civilite).'" where id_devis='.intval($id_dev)) or die ("Erreur update: ".mysql_error());
     
    echo 'Nombre de lignes affectées : '.mysql_affected_rows().'<br/>';
    Au passage, penses à toujours protéger tes requêtes des injections SQL, là ca aurait été du gâteau.

    À bientôt,

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $id_dev = $_GET['id'];
    $civilite = $_POST['civilite'];
    echo 'Identifiant du devis : '.$id_dev.'<br/>';
     
    $sql=mysql_query('UPDATE `formulaire` SET civilite="'.mysql_real_escape_string($civilite).'" where id_devis='.intval($id_dev)) or die ("Erreur update: ".mysql_error());
     
    echo 'Nombre de lignes affectées : '.mysql_affected_rows().'<br/>';
    Merci de ta réponse, j'ai essayé donc ca me mets bien que ca ajoute quelque chose (ce qui est normal) sauf que ce qu'il m'ajoute c'est toujours un espace
    :s

    Je viens de voir que quand je transmet mes valeurs avec $_GET ca fonctionne, donc l'erreur vient du $_POST :s

    Au cas je mets la facon dont je transmet mes valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"Civilite: <input type=\"text\" name=\"civilite\" value=\"$civilite\" size=\"25\"/>";
    Ps: Oui pour la sécurité j'ai simplement retiré tout le code inutile au fonctionnement pour les tests sinon j'ai bien tout le tuticuenti de sécurité

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Réponses: 2
    Dernier message: 16/08/2005, 09h43
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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