Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 11h07   #1
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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 :
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 :
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 :
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
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h39   #2
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Salut,

Code :
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 :
$_SESSION['u'] # est vide
Je ne comprends pas ce que essaye de faire avec :
Code :
agent.'.intval($_GET['u'])
n'est pas un champ valide.
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h55   #3
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
Salut !

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

Code :
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 ?
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 12h35   #4
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
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 :
$_SESSION['agen_id'] = $id; # récupérer de la base de donnée
Code :
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
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 14h41   #5
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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 :
	$_SESSION ['nom']   = $data['nom'];//la session avec son nom
Code :
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 :
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'
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 14h56   #6
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
tu as oublié les cotes pour entourer le nom.

Code :
UPDATE cybernet.agent SET nom = "", prenom = "", privilege = "Administrateur", email = "", telephone = "", fonction_tech = "Managere" WHERE nom='Kalamba'
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 10h41   #7
Invité régulier
 
Inscription : janvier 2009
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 63
Points : 8
Points : 8
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 :
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 :
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 :
Notice: Undefined index: id_agent in C:\wamp\www\internetservices\modifierAgent.php on line 6
glodybiss4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h14.


 
 
 
 
Partenaires

Hébergement Web