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 :

Modification d'un enregistrement [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é
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut Modification d'un enregistrement
    Salut à tous.
    je suis bloqué sur mon code de modification d'un enregistrement.
    Je sélectionne l'enregistrement dans la base de données et cette selection se fait correctement sans erreur.
    je récupère le numéro d'identifiant que je met dans un champs imput de type hidden.
    je fait ma requête de modification en appelant la valeur du champs imput de type hidden. mais j'ai le message d'erreur suivant :
    Erreur:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( nom_agt = , pre_agt = , date_nais_agt = , lieu_nais_agt = , adr' at line 1
    voici mon 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
         if (isset($_POST['Modifier']))
    	 {
     
    	try
    		{
    			include("connection_BICF_bd.php");
     
    /*cette requètte permet de modifier les infos sur l'agent */
     
    	$req = $bdd->exec("UPDATE agents SET (  
    	nom_agt = ".$_POST['nom'].", 
    	pre_agt = " . $_POST['prenom'] .", 
    	date_nais_agt = " . $_POST['datnaiss'] .", 
    	lieu_nais_agt = " . $_POST['lieunaiss'] .",
    	adres_agt = " . $_POST['adresse'] .",
    	cnt_agt = " . $_POST['contact'] .", 
    	email_agt= = " . $_POST['email'] .", 
            pseudo_agt= =  " . $_POST['pseudo'] .",
    	res_agt= = " . $_POST['residence'] .",  
    	mot_passe_agt= = " . $_POST['mot_passe'] .", 
    	img_agt= = " . $_POST['image'] .", 
    	sexe_agt= = " . $_POST['sexe'] .", 
    	sit_mat_agt= = " . $_POST['situation_m'] .", 
    	nationalite= = " . $_POST['nationalite'] .", 
    	date_pris_fonc= = " . $_POST['date_pris_fonc'] .", 
    	diplome= = " . $_POST['diplome'] .", 
    	service= = " . $_POST['service'] .", 
    	fonction= = " . $_POST['fonction'] ."
    	WHERE num_agt = " . $_POST['num_caché'] .")");
    	echo "<script langage='javascript'>alert('modification terminée avec succès ...');</script>";
    	    }
     
    	catch(Exception $e)
    		{
    			die('Erreur:'.$e->getMessage());
    		}
    	$req->closeCursor();
     
    }
    ?>
    Merci Pour votre aide

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Par défaut
    Salut,

    tu as pas besoin de mettre des parenthèses après SET

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Merci selmouadin pour ta réponse,
    je pense qu'il y a des parenthèses après le SET ou bien selon toi comment je dois les mettre ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 73
    Par défaut
    Es tu sûr de cette syntaxe?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    update table1 set (arg1=val1, arg2= = val2, ... where condition1=1)

    Je ne pense pas qu'il y est de parenthèse pour le UPDATE, et je ne suis pas sûr que l'opérateur "= =" soit juste.

  5. #5
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Je crois que quasiment tout est dit

    la parenthèse du SET, qui en plus englobe la condition

    l'opérateur == qui est un opérateur de comparaison et non un égal d'affectation

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
         if (isset($_POST['Modifier']))
    	 {
     
    	try
    		{
    			include("connection_BICF_bd.php");
     
    /*cette requètte permet de modifier les infos sur l'agent */
     
    	$req = $bdd->exec("UPDATE agents SET   
    	nom_agt = ".$_POST['nom'].", 
    	pre_agt = " . $_POST['prenom'] .", 
    	date_nais_agt = " . $_POST['datnaiss'] .", 
    	lieu_nais_agt = " . $_POST['lieunaiss'] .",
    	adres_agt = " . $_POST['adresse'] .",
    	cnt_agt = " . $_POST['contact'] .", 
    	email_agt  = " . $_POST['email'] .", 
        pseudo_agt =  " . $_POST['pseudo'] .",
    	res_agt  = " . $_POST['residence'] .",  
    	mot_passe_agt  = " . $_POST['mot_passe'] .", 
    	img_agt  = " . $_POST['image'] .", 
    	sexe_agt  = " . $_POST['sexe'] .", 
    	sit_mat_agt  = " . $_POST['situation_m'] .", 
    	nationalite  = " . $_POST['nationalite'] .", 
    	date_pris_fonc  = " . $_POST['date_pris_fonc'] .", 
    	diplome  = " . $_POST['diplome'] .", 
    	service  = " . $_POST['service'] .", 
    	fonction  = " . $_POST['fonction'] ."
    	WHERE num_agt = " . $_POST['num_caché'] ."");
    	echo "<script langage='javascript'>alert('modification terminée avec succès ...');</script>";
    	    }
     
    	catch(Exception $e)
    		{
    			die('Erreur:'.$e->getMessage());
    		}
    	$req->closeCursor();
     
    }
    ?>

    Ça devrait mieux marcher

    Sinon, les $_POST direct dans la requête, c'est très fortement déconseillés
    c'est une grosse faille de sécurité.

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    camyo j'ai suivi ton conseil en enlevant les $_POST direct dans la requête. J'ai affecté les valeurs des champs $_POST aux variables et ce sont ces variables qui sont exécutées dans ma requête. J'obtiens comme résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script langage='javascript'>alert('modification terminée avec succès ...');</script>";
    mais aucune modification dans la base de données.

    Voici le code complet :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
     
         if (isset($_POST['Modifier']))
    	 {
     
    	try
    		{
    	include("connection_BICF_bd.php");
       // On affecte les valeurs des champs imput aux variables
    	$nom = $_POST['nom'];
    	$prenom = $_POST['prenom']; 
    	$datnaiss = $_POST['datnaiss'];
    	$lieunaiss = $_POST['lieunaiss'];
    	$adresse = $_POST['adresse'];
    	$contact = $_POST['contact']; 
    	$email  = $_POST['email']; 
        $pseudo =  $_POST['pseudo'];
    	$residence  = $_POST['residence'];  
    	$mot_passe  = $_POST['mot_passe']; 
    	$image  = $_POST['image'];
    	$sexe  = $_POST['sexe'];
    	$situation_m  = $_POST['situation_m'];
    	$nationalite  = $_POST['nationalite'];
    	$date_pris_fonc  = $_POST['date_pris_fonc'];
    	$diplome  = $_POST['diplome']; 
    	$service  = $_POST['service']; 
    	$fonction  = $_POST['fonction'];
    	$num_caché = $_POST['num_caché'];
     
    	echo $prenom;
    	$req = $bdd->exec('UPDATE agents SET   
    	nom_agt = "$nom", 
    	pre_agt = "$prenom", 
    	date_nais_agt = "$datnaiss", 
    	lieu_nais_agt = "$lieunaiss",
    	adres_agt = "$adresse",
    	cnt_agt = "$contact", 
    	email_agt  = "$email", 
        pseudo_agt = "$pseudo",
    	res_agt  = "$residence",  
    	mot_passe_agt  = "$mot_passe", 
    	img_agt  = "$image", 
    	sexe_agt  = "$sexe", 
    	sit_mat_agt  = "$situation_m", 
    	nationalite  = "$nationalite", 
    	date_pris_fonc  = "$date_pris_fonc", 
    	diplome  = "$diplome", 
    	service  = "$service", 
    	fonction  = "$fonction"
    	WHERE num_agt = "$num_caché"');
     
    	echo "<script langage='javascript'>alert('modification terminée avec succès ...');</script>";
    	    }
     
    	catch(Exception $e)
    		{
    			die('Erreur:'.$e->getMessage());
    		}
     
    }
    ?>

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

Discussions similaires

  1. modification d'un enregistrement par une requete
    Par tzinzin dans le forum Access
    Réponses: 7
    Dernier message: 23/03/2006, 20h36
  2. date de modification d'un enregistrement
    Par xycoco dans le forum Access
    Réponses: 3
    Dernier message: 15/11/2005, 21h47
  3. [IBquery]modification manuelle d'enregistrement
    Par dudux dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/06/2005, 20h53
  4. TDBlookupcombo et modification d'un enregistrement existant
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/04/2005, 12h11
  5. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 14h09

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