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 :

formulaire de modification de données [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Par défaut formulaire de modification de données
    Bonjour,
    j'essaye de faire un formulaire de modification ou l'utilsateur selectionne une instance, le nom du champ a modifier et sa nouvelle valeur. J'avais pensé au code suivant mais ca ne marche pas...
    La fonction d'erreur m'indique que le champs est inconnu...
    Voici le code, si quelqu'un a une idéee :
    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
    28
    29
    30
    31
    32
    <?php
    include('fonctions.php');
    connect_and_select();/*fonction de connection et de selection de la base de donnees*/
     
    if(isset($_POST['champ_mod']))      
    {$champ_mod=$_POST['champ_mod'];}
     
    if(isset($_POST['nouv_val']))      
    {$nouv_val=$_POST['nouv_val'];}
     
    if(isset($_POST['num_adherent_mod']))      
    {$num_adherent_mod=$_POST['num_adherent_mod'];}
     
     
     
    if(empty($champ_mod) OR empty($nouv_val) ) 
        { echo '<font color="red">Attention, formulaire incomplet : obligatoire !</font>'; } 
    else {
    $requete="UPDATE Adherent SET $champ_mod=$nouv_val WHERE
    num_adh=$num_adherent_mod";
    }
     
    if ($result=mysql_query($requete))
    {
    echo 'ok';}
    else echo mysql_error();
     
     
     
    mysql_close();
     
    ?>
    merci d'avance
    ben

  2. #2
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Salut!!

    C'est normal, en fait quand on met la requete entre " ... " il prendre ta varible comme un nom de champ essaie ca plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete='UPDATE Adherent SET $champ_mod=$nouv_val WHERE
    num_adh=$num_adherent_mod';
    Tout bête mais ca devrait marcher =)

    EDIT ou alors ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete="UPDATE Adherent SET '$champ_mod'='$nouv_val' WHERE
    num_adh='$num_adherent_mod'";

  3. #3
    Membre éclairé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Par défaut
    Bonjour,
    j'ai essayé les 2 écritures : en mettant la requête entre simple quotes : j'obtiens l'erreur :
    Champ '$num_adherent_mod' inconnu dans where clause
    voici le code :
    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('fonctions.php');
    connect_and_select();/*fonction de connection et de selection de la base de donnees*/
     
    if(isset($_POST['champ_mod']))      
    {$champ_mod=$_POST['champ_mod'];}
     
    if(isset($_POST['nouv_val']))      
    {$nouv_val=$_POST['nouv_val'];}
     
    if(isset($_POST['num_adherent_mod']))      
    {$num_adherent_mod=$_POST['num_adherent_mod'];}
     
    if(empty($champ_mod) OR empty($nouv_val) ) 
        { echo '<font color="red">Attention, formulaire incomplet : obligatoire !</font>'; } 
    else {
    $requete='UPDATE Adherent SET $champ_mod=$nouv_val WHERE
    num_adh=$num_adherent_mod;';
    }
     
    if ($result=mysql_query($requete))
    {
    echo 'ok';}
    else echo mysql_error();
     
    mysql_close();
    ?>
    avec la 2nd écriture, double quotes puis variables entre single quotes, j'obtiens l'erreur :
    Erreur de syntaxe pr�s de ''nom'='xx' WHERE num_adh='18'' � la ligne 1
    voici le code correspondant :

    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('fonctions.php');
    connect_and_select();/*fonction de connection et de selection de la base de donnees*/
     
    if(isset($_POST['champ_mod']))      
    {$champ_mod=$_POST['champ_mod'];}
     
    if(isset($_POST['nouv_val']))      
    {$nouv_val=$_POST['nouv_val'];}
     
    if(isset($_POST['num_adherent_mod']))      
    {$num_adherent_mod=$_POST['num_adherent_mod'];}
     
    if(empty($champ_mod) OR empty($nouv_val) ) 
        { echo '<font color="red">Attention, formulaire incomplet : obligatoire !</font>'; } 
    else {
    $requete="UPDATE Adherent SET '$champ_mod'='$nouv_val' WHERE
    num_adh='$num_adherent_mod'";
    }
     
    if ($result=mysql_query($requete))
    {
    echo 'ok';}
    else echo mysql_error();
     
    mysql_close();
    ?>
    merci d'avance
    ben

  4. #4
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Salut !

    Dans ce cas essaie ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete="UPDATE Adherent SET ".$champ_mod."=".$nouv_val." WHERE
    num_adh=".$num_adherent_mod."";

  5. #5
    Membre éclairé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Par défaut
    Bonsoir,
    merci pour ta réponse.
    je viens de tester ta requete, ca ne fonctionne toujours pas :
    j'ai essayé de modifier le nom en rentrant pour valeur 'xxxx' et voici l'erreur :

    Champ 'xxxx' inconnu dans field list


    merci d'avance
    ben

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete="UPDATE Adherent SET '$champ_mod'='$nouv_val' WHERE
    num_adh='$num_adherent_mod'";
    Tu ne dois pas mettrre le nom de la colonne entre quotes ( ' ) cf :

    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2012, 13h56
  2. Formulaire de modification de donnée
    Par Poeteuh dans le forum Langage
    Réponses: 1
    Dernier message: 15/06/2009, 09h50
  3. besoin d'aider pour formulaire de modification des données
    Par lesultan2007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/08/2008, 18h41
  4. Réponses: 1
    Dernier message: 22/06/2007, 08h32
  5. Réponses: 6
    Dernier message: 15/02/2006, 14h02

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