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 d'une table mysql avec php


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Points : 43
    Points
    43
    Par défaut Mise à jour d'une table mysql avec php
    Posez votre question
    Liste des messages Discussion Liste des forums
    Signaler
    Erreur de la mise à jour mysql php
    glodybiss - 5 janv. 2012 à 09:44
    Ne plus suivre - Modifier
    Bonjour,

    Encore une assistance de votre part
    J'aimerai faire la mise à jour des quelques colonne des informations d'un membre inscrit dans ma base des données mais je rencontre plusieurs problème.

    Voici les erreurs que je rencontre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Notice: Undefined index: u in C:\wamp\www\internetservices\modifierAgent.php on line 6
     
    Notice: Undefined index: u in C:\wamp\www\internetservices\modifierAgent.php on line 6
    Erreur SQL !UPDATE cybernet.agent SET nom = "", prenom = "", privilege = "Administrateur", email = "", telephone = "", fonction_tech = "Sales" WHERE agent.0=
    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 '' at line 2


    Toute mes sources

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?php
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "" ) ;
    //sélection de la base de données:
    $db = mysql_select_db( "mabase" ) ;
     
     if (isset($_POST['Modifier']) && $_POST['Modifier'] == 'Modifier') {
     
     		{
     	$sql = 'UPDATE cybernet.agent SET nom = "'.mysql_escape_string($_POST['nom']).'", prenom = "'.mysql_escape_string($_POST['prenom']).'", privilege = "'.mysql_escape_string($_POST['privilege']).'", email = "'.mysql_escape_string($_POST['email']).'", telephone = "'.mysql_escape_string($_POST['telephone']).'",
    fonction_tech = "'.mysql_escape_string($_POST['fonction_tech']).'" WHERE agent.'.intval($_GET['u']).'='.$_SESSION['u'].'';
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     	echo '<div class="succes">Modifications faites avec succès</br></div>';
     		}
     }
     	else{
     		$erreur = 'Attention aux erreurs, remplissez correctement le formulaire pour modifier vos informations.';
     	}
    ?>
    <div id="box_Modif_Agent">
    <form action="" method="post" name="form1" id="form1">
              <table width="320" border="0" class="left">
     <?php
       if (isset($erreur)) {
       echo '<div id="info" class="worning">'.$erreur.'</div><!--error-->';
         } ?>
         <br/><br/>
         <h4>Modifier compte</h4>
     
                <tr>
                  <td class="td">Nom</td>
                  <td> <input type="text" name="nom" class="input_ajout_agent"  value="<?php if (isset($_POST['nom']))  echo htmlentities(trim($_POST['nom'])); ?>" ></td>
                </tr>
                <tr>
     
    			   <tr>
                  <td>Prenom</td>
                  <td >
                      <input type="text" name="prenom"  class="input_ajout_agent" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" ></td>
                </tr>
     
    			   <tr>
                  <td>Privilege</td>
                  <td>
    			  <select name="privilege" class="input_ajout_agent"  value="<?php if (isset($_POST['privilege'])) echo htmlentities(trim($_POST['privilege'])); ?>"  >
    			  <option>Administrateur</option>
    			  <option>Utilisateur</option>
    			  </select>
    			  </td>
                </tr>
     
                 <tr>
                  <td class="td">E-mail</td>
                  <td> <input type="text" name="email" class="input_ajout_agent"  value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"></td>
     
    			   	<tr>
                  <td class="td">Téléphone</td>
                         <td> <input type="text" class="input_ajout_agent"  name="telephone" value="<?php if (isset($_POST['telephone'])) echo htmlentities(trim($_POST['telephone'])); ?>"></td>
                </tr>
                  <tr>
                  <td class="td">Fonction</td>
     
                   <td>
    			  <select name="fonction_tech" class="input_ajout_agent"  value="<?php if (isset($_POST['fonction_tech'])) echo htmlentities(trim($_POST['fonction_tech'])); ?>"  >
    			  <option>Managere</option>
    			  <option>Sales</option>
    			  <option>Technicien</option>
    			  </select>
    			  </td>
                </tr>
     
                <tr>
                <td></td>
                  <td><input type="submit" name="Modifier" class="submi" value="Modifier" /></td>
                </tr>
    			</table>
     
    </form></div>
    </body>
    </html>


    Ma table agent

    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
    CREATE TABLE IF NOT EXISTS 'agent' (
      'id' int(11) NOT NULL AUTO_INCREMENT,
      'nom' varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      'prenom' varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      'password' varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      'matricule' varchar(45) COLLATE utf8_unicode_ci NOT NULL,
      'privilege' varchar(50) COLLATE utf8_unicode_ci NOT NULL,
      'date' datetime NOT NULL,
      'email' varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      'telephone' varchar(45) COLLATE utf8_unicode_ci NOT NULL,
      'fonction_tech' varchar(45) COLLATE utf8_unicode_ci NOT NULL,
      'birthday' date NOT NULL,
      'intervention' varchar(100) COLLATE utf8_unicode_ci NOT NULL,
      PRIMARY KEY ('id'),
      UNIQUE KEY 'id_agent_UNIQUE' ('id')
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=38 ;



    Merci pour votre aide

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = 'UPDATE cybernet.agent SET nom = "'.mysql_escape_string($_POST['nom']).'", prenom = "'.mysql_escape_string($_POST['prenom']).'", privilege = "'.mysql_escape_string($_POST['privilege']).'", email = "'.mysql_escape_string($_POST['email']).'", telephone = "'.mysql_escape_string($_POST['telephone']).'",
    fonction_tech = "'.mysql_escape_string($_POST['fonction_tech']).'" WHERE agent.'.intval($_GET['u']).'='.$_SESSION['u'].''
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['u'] # est vide
    Je ne comprends pas ce que essaye de faire avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    agent.'.intval($_GET['u'])
    n'est pas un champ valide.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Salut !

    En fait ce n'est pas vraiment à prendre en compte ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    agent.'.intval($_GET['u'])
    Je voulais essayé de récupérer l'ID de l'utilisateur dont la session est en cours mais ça n'a pas marché et je ne sais vraiment pas trouvé une solution pour ça, peux-tu donc m'aider aussi pour ça ?

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    il faut qu'à la connexion de l'utilisateur tu assignes bien la variable de session.

    exemple :
    L'utilisateur se connecte on récupère son ID après avoir vérifier ses informations (mail, mot de passe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['agen_id'] = $id; # récupérer de la base de donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = 'UPDATE cybernet.agent SET nom = "'.mysql_escape_string($_POST['nom']).'", prenom = "'.mysql_escape_string($_POST['prenom']).'", privilege = "'.mysql_escape_string($_POST['privilege']).'", email = "'.mysql_escape_string($_POST['email']).'", telephone = "'.mysql_escape_string($_POST['telephone']).'",
    fonction_tech = "'.mysql_escape_string($_POST['fonction_tech']).'" WHERE id='.$_SESSION['agent_id'].''
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Le code fonction presque avec ta méthode parce que quand j'essaie d’exécuté la requête à partir de la base des données ça fonction mais quand j'utilise avec php j'ai des erreurs

    La requête avec le nom se la session ouverte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$_SESSION ['nom']   = $data['nom'];//la session avec son nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !UPDATE cybernet.agent SET nom = "", prenom = "", privilege = "Administrateur", email = "", telephone = "", fonction_tech = "Managere" WHERE nom=Kalamba
    Unknown column 'Kalamba' in 'where clause'
    Erreur sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !UPDATE cybernet.agent SET nom = "", prenom = "", privilege = "Administrateur", email = "", telephone = "", fonction_tech = "Managere" WHERE nom=Kalamba
    Unknown column 'Kalamba' in 'where clause'

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    tu as oublié les cotes pour entourer le nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE cybernet.agent SET nom = "", prenom = "", privilege = "Administrateur", email = "", telephone = "", fonction_tech = "Managere" WHERE nom='Kalamba'
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Bonjour je m'excuse pour ce retard c'est parce que je ne me suis pas connecté depuis le samedi.

    ça fonctionne très bien, merciii!
    mais avant j'avais utiliser la variable nom de la session pour permettre à la modification des données mais maintenant j'essaie avec l'id rien ne fonctionne pourtant le id est également défini dans le fichier les variables de session de ma page d'accueil.

    voyez à quoi ressemble mon code
    voici comment j'ai défini les variables dans les sessions de mon fichier index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
           if ($data['nb'] == 1) {
         	 session_register("authentification");
    		$_SESSION ['id_agent'] = $data['id_agent'];//l'id de l'agent
    		$_SESSION ['privilege'] = $data['privilege'];//verification de ses privilèges
    		$_SESSION ['nom']   = $data['nom'];//la session avec son nom
    		$_SESSION ['prenom']   = $data['prenom'];//la session avec son prénom
    		$_SESSION ['password']= $data['password'];
    et dans le fichier de modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$sql = 'UPDATE cybernet.agent SET nom = "'.mysql_escape_string($_POST['nom']).'", prenom = "'.mysql_escape_string($_POST['prenom']).'", privilege = "'.mysql_escape_string($_POST['privilege']).'", email = "'.mysql_escape_string($_POST['email']).'", telephone = "'.mysql_escape_string($_POST['telephone']).'",
    fonction_tech = "'.mysql_escape_string($_POST['fonction_tech']).'" WHERE id_agent="'.$_SESSION['id_agent'].'"';
    et j'ai cette erreur dans le fichier de modification

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: id_agent in C:\wamp\www\internetservices\modifierAgent.php on line 6

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/07/2007, 17h20
  2. Réponses: 1
    Dernier message: 27/03/2007, 10h23
  3. mise a jour d'une table paradox avec une autre table sous delphi
    Par bobo2005 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/01/2007, 21h07
  4. Mise à jour d'une table avec une autre
    Par Lucien dans le forum SQL
    Réponses: 2
    Dernier message: 20/04/2006, 10h46
  5. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46

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