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 champ texte [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut update champ texte
    Bonjour,
    J'ai un petit soucis de mise à jour dans ma base de données MySQL:
    Je récupère par $_POST une variable issue d'un champ texte.
    Dans PhpMyadmin, j'ai un champ chp18 défini: varchar(15).

    L'importation ne fonctionne pas... (Pour les champs numériques ça passe impec en revanche)
    C'est une histoire de guillemets non?
    Pourtant si je concatène:
    "" . $var18, la mise à jour ne fonctionne toujours pas...

  2. #2
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 557
    Points : 286
    Points
    286
    Par défaut
    bonjour,

    tu devrais laisser au moins la ligne de code où tu concatènes.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    ok désolé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $param1='quoi1a';
    	$param2=$_POST['res1'];
    Puis j'ai une requête qui est du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update user set $param1 = 'param2' where ... ;
    Et en fin de compte le problème se situe en aval car l'erreur Mysql retournée est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update user set champ1= champ2=...
    en fin de compte c'est mon passage de varaible qui pose problème.

    res1 est le nom d'un champ texte qui a pour valeur : Chute (par exemple). Par contre il est désactivé via disabled, est ce l'origine du problème?

    Merci.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    ok, donc en enlevant le disabled je récupère:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update user set champ1=Chute
    et ce qu'il faudrait pour que l'update fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update user set champ1="Chute"
    Il manque donc quelque chose dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $param2=$_POST['res1'];
    mais je n'arrive pas à trouver...
    Et ensuite comment gérer le disabled.
    Que d'ennuis lool

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    en fin de compte c'est mon passage de varaible qui pose problème.
    Si tu ne reçois rien en POST, alors c'est ton formulaire qui ne va pas.
    Mais là aussi sans code, on peu ne pas dire grand chose.

    Pour mieux vérifier se que tu reçois (ou pas) en POST, fait un print_r($_POST), et si c'est des données en GET, print_r($_GET).

    Et ensuite comment gérer le disabled
    Le disabled de quoi ?
    J'ai l'impression que tu parts du principe qu'on a ton code sous les yeux
    Faut expliquer un peu plus, du code à l'appuie si nécessaire, on ne pas deviner

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    oui c'est bon, j'ai vérifié je reçois ma variable (en retirant la propriété disabled de la zone de texte);
    Maintenant, comment indiquer que je veux la variable post avec des guillemets autour?

  7. #7
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Citation Envoyé par granchef
    Maintenant, comment indiquer que je veux la variable post avec des guillemets autour?
    Mets y tout le temps des guillemets, MySQL transtype, (comme Php), ça marche, que ce soit un string ou un integer.

    Il y a que lorsque la valeur doit être nulle ou ça cause un problème, il ne faut pas de guillemet, et indiquer comme valeur NULL.
    C'est la seule exception à ma connaissance.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    Loool! oui c'est vrai je suis dans mon truc, et je galère tellement que j'ai l'impression que vous êtes à côté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $param1='chp1';
    $param2=$_POST['res1'];
    $param3='chp2';
    $param4="$_POST['res2']";
     
    $sql=implode(',', $params);
    $requete = "UPDATE user SET $sql WHERE...
    Les variables res1 et res2 proviennent de champs texte, que j'avais désactivé dans le formulaire précédent.

    J'espère avoir été clair

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Si tu connais le nom des champs et des données reçues à l'avance, pourquoi ne pas construire la requête directement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "UPDATE la_tale SET chp1 = '".$_POST['res1']."', chp2 = '".$_POST['res1']."' WHERE ...";
    Ou est le problème ?
    (faudrait utiliser un mysql_real_escape_string selon le type de donnée)

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    ok ok ok blaireau que je suis: on rajoute des apostrophes (enfin la touche 4) et c'est parti mon kiki!
    euh, et par contre mon disabled, je le met dans le coffre et je l'enterre ou il a le droit a un traitement de faveur ?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    Bien vu RunCodePhp, mais je cachais encore des trucs lool
    En fait, je généralise cette manipulation, car de page en page mon nombre de paramètre à mettre à jour diffère, donc je passe par l'implode...

  12. #12
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    euh, et par contre mon disabled, je le met dans le coffre et je l'enterre ou il a le droit a un traitement de faveur ?
    C'est vrai, il me semble qu'une donnée dans un champ "disabled" n'est pas transmise.

    Le seul moyen que je connaisse, c'est d'exploiter (rajouter) un champ caché avec la même valeur (autre nom aussi), et tu récupère celui ci.
    En somme, le disabled n'est là que pour le visuel, pour l'utilisateur.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 248
    Points : 135
    Points
    135
    Par défaut
    Entendu , en te remerciant!

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

Discussions similaires

  1. update d une table en fonction de champs texte
    Par saphi dans le forum Langage
    Réponses: 6
    Dernier message: 03/11/2009, 14h57
  2. Select/Update champs blob (texte)
    Par agimation dans le forum Powerbuilder
    Réponses: 4
    Dernier message: 22/09/2009, 10h06
  3. Update d'un champ texte
    Par bastringue dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/09/2008, 10h44
  4. Update d'un champ Texte
    Par Glherbier dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/08/2008, 16h35
  5. Probleme d'UPDATE sur un champ text
    Par Nip dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/07/2005, 11h35

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