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 :

Mise à jour après selection du champs , rien ne se passe ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut Mise à jour après selection du champs , rien ne se passe ?
    Hello

    J'ai un problème avec le code PHP / Mysql suivant :

    Code php : 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
    <?php
     
    $nom_colonne=$_POST['valpass']; // pour récupérer ce champs  le client accéder à une liste ou il peut modifier 3 champs : son prénom , son nom ou son age (le tout dans une liste située dans un formulaire A) 
    // ensuite selon le paramètre choisi je passe le nom du champs (si prenom alors se sera la colonne "prenom" qui sera mis à jour ... ) + on passe le numero de client 
    // j'arrive sur un formulaire (formulaire B) ou j'ai un champs à compléter le champs "prenom" qui est à mettre à jour , l'utilisateur saisi son nouveau prenom
    // on envoit ensuite le numerco de client + le nom de la colonne + la nouvelle valeur à mettre à jour 
    $num_cli=$_POST['num_cli']; // numeros de client
    $inject=$_POST['valsai']; // valeur saisie par utilisateur à injecter dans la base pour mise a jour
     
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('avion',$db);
     
    $sql="UPDATE CLIENTS SET '".$nom_colonne."'='".$inject."' WHERE num_cli='".$num_cli."' "; //ici le nom de la colonne est variable selon le client à choisi nom , prenom ou age 
    // c'est que ca se corse car la requête est bien lu , les champs valeurs arrivent bien sur la page mais aucune mise à jour n'est effectué ? ma requête est elle fausse ?
     
    mysql_query($sql);
     
    mysql_close();
     
    echo $nom_colonne; // affichage test qui marche 
    echo $num_cli; // affichage test qui marche 
    echo $inject; // affichage test qui marche 
     
    echo"Mise à jour effectuée";
     
    ?>

    Merci de me tuyauter car je ne vois pas ce qui cloche

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo $sql;
    echo mysql_error();
    par ailleurs, ta requête ne contrôle pas du tout les données qu'elle utilise : au minimum un utilisateur malentionné peut modifier les informations de tous les utilisateurs, au pire, il peut faire ce qu'il veut sur ta base de données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    J'ai changé ma requete :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="UPDATE CLIENTS SET '".$nom_colonne."'='".$inject."' WHERE num_cli='".$num_cli."' ";

    par

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="UPDATE CLIENTS SET ".$nom_colonne."='".$inject."' WHERE num_cli='".$num_cli."' ";

    en enlevant les apostrophe autour des guillements de "dollar nom colonne" . Et ca marche . J'ai fait un affichage de requete pour voir le bug

    Merci du coup de mains

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/05/2007, 07h43
  2. Mise à jour dynamique d'un champs
    Par Badiste dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/10/2006, 15h18
  3. mise à jour TADOQuery select...union dans un dbgrid
    Par newfsch dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/04/2006, 09h16
  4. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54
  5. TAdoQuery et mise à jour après suppression
    Par kurkaine dans le forum C++Builder
    Réponses: 1
    Dernier message: 30/11/2005, 15h31

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