modification non effectué

Eléphant du PHP | 258 Messages

27 oct. 2008, 16:32

bonjour

après envoyé le formulaire dans lequel je modifie les données, ceux ci ne sont pas modifiés dans la base.

je cherche ce problème.
un problème de syntaxe?
merci de vos réponses
voici le code source
// -------modification des données du formulaire modif1_tuteur.php  -------------------------

	if(isset($_POST['modif_tuteur']))
	{
	$sql_update    = "UPDATE tuteur SET nom = '".$_POST['nom']."', prenom = '".$_POST['prenom']."' WHERE id_tuteur = '".$_POST['id_tuteur']."' "; 
	$req_update	=	mysql_query($sql_update)or die('Erreur SQL !'.$sql_update.'<br>'.mysql_error()); 
	}
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2008, 16:36

Hello !

Toutes les valeurs sont-elles correctement récupérées ?
$sql_update    = "UPDATE tuteur SET nom = '".$_POST['nom']."', prenom = '".$_POST['prenom']."' WHERE id_tuteur = ".$_POST['id_tuteur'];
l'id_tuteur est un entier, il ne faut pas l'entourer de simple quote.

Mammouth du PHP | 2937 Messages

27 oct. 2008, 16:37

As-tu des messages d'erreur ?

De plus, je te conseille vivement d'utiliser mysql_real_escape_string() pour te prémunir d'attaques par injonction SQL.

Enfin, $_POST['id_tuteur'] a-t-elle une valeur valide ?

Eléphant du PHP | 258 Messages

27 oct. 2008, 16:42

voici le message d'erreur:

Code : Tout sélectionner

Erreur SQL !UPDATE tuteur SET nom = 'BOUCHONNEAU', prenom = 'GILLEs' WHERE id_tuteur = 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 1
// -------modification des données du formulaire modif1_tuteur.php  -------------------------

	if(isset($_POST['modif_tuteur']))
	{
	$sql_update    = "UPDATE tuteur SET nom = '".$_POST['nom']."', prenom = '".$_POST['prenom']."' WHERE id_tuteur = ".$_POST['id_tuteur']." "; 
	$req_update	=	mysql_query($sql_update)or die('Erreur SQL !'.$sql_update.'<br>'.mysql_error()); 
	}
voici la structure BD
CREATE TABLE `tuteur` (
  `id_tuteur` int(3) NOT NULL auto_increment,
  `nom` varchar(50) NOT NULL,
  `prenom` varchar(50) NOT NULL,
  KEY `id_tuteur` (`id_tuteur`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;

Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

27 oct. 2008, 16:43

Que donne echo $sql_update; ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 2937 Messages

27 oct. 2008, 16:46

Il est fort probable que $_POST['id_tuteur'] soit vide.

Eléphant du PHP | 258 Messages

27 oct. 2008, 16:55

vide???
oh non!!

dans le formulaire, il m'affiche tous les données récupérées compris l'id_tuteur
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

27 oct. 2008, 17:02

Pourrais-tu nous montrer l'affichage généré par echo $sql_update ? ;)

Eléphant du PHP | 258 Messages

27 oct. 2008, 17:06

je viens de tester en remplaçant par un nombre entier
avec cette syntaxe, ca marche
//$id_tuteur	=	$_POST['id_tuteur'];
if(isset($_POST['modif_tuteur']))
	{
	$sql_update    = "UPDATE tuteur SET nom = '".mysql_real_escape_string($nom)."', prenom = '".mysql_real_escape_string($prenom)."' 
	WHERE id_tuteur = 39 "; 
	$req_update	=	mysql_query($sql_update)or die('Erreur SQL ! '.$sql_update.'<br>'.mysql_error()); 
	}
donc probablement un pb de quotes?
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

27 oct. 2008, 17:11

je viens de tester en remplaçant par un nombre entier
avec cette syntaxe, ca marche
//$id_tuteur	=	$_POST['id_tuteur'];
if(isset($_POST['modif_tuteur']))
	{
	$sql_update    = "UPDATE tuteur SET nom = '".mysql_real_escape_string($nom)."', prenom = '".mysql_real_escape_string($prenom)."' 
	WHERE id_tuteur = 39 "; 
	$req_update	=	mysql_query($sql_update)or die('Erreur SQL ! '.$sql_update.'<br>'.mysql_error()); 
	}
donc probablement un pb de quotes?
Non. Le problème doit certainement venir de la valeur retournée par $_POST['id_tuteur'].

Si tu effectues un echo $_POST['id_tuteur'], qu'est-ce que ça affiche ?

Eléphant du PHP | 258 Messages

27 oct. 2008, 17:16

non, il n'affiche pas le résultat de l'id

bonne idée de tester cela
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2008, 17:17

Regarde donc côté formulaire si tu ne t'es pas trompé de nom pour le champ.

Eléphant du PHP | 258 Messages

27 oct. 2008, 17:20

ca y est
bravo à toi

un grand génie

un erreur dans le formulaire
j'ai tapé trop vite : id au lieu d'id_tuteur

merci beaucoup
je mets en résolu
Cordialement
---------------------------------------------------------
Cyphos utilise
- Firefox et Google Chrome dernière version
- Windows Seven ou Windows XP SP3,
- Wampserver

Mammouth du PHP | 2937 Messages

27 oct. 2008, 17:21

Regarde donc côté formulaire si tu ne t'es pas trompé de nom pour le champ.
Voire si aucun champ correspondant n'existe (fût-il de type hidden).

Édition : grillé. :oops: