Erreur sql au secour

Résolu
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   -  
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai un probleme quand j'envoie mon formulaire voici mon erreur

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 'WHERE id= ""' at line 1

voici la ligne en question je l'ai mis en gras

<?
//connextion a la base de donnee
mysql_connect('localhost', 'axxxxx', 'xxxxxx');
mysql_select_db("auto7837_auto");
$id = $_POST['id']; // recuperation de l'id a modifier
if(is_numeric($id) && $id) {
$sql='SELECT * FROM servicenonpubliee WHERE id="'.$id.'"';
$req=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($req)) {
$typedannonce=$row['typedannonce']; $email=$row['email']; $titre=$row['titre']; $message=$row['message'];
}
}
if(isset($_POST['envoyer'])) {
$id = $_POST['id']; $typedannonce=$_POST['typedannonce']; $email=$_POST['email']; $titre=$_POST['titre']; $message=$_POST['message'];
//on modifie les images la requete
$sql=' UPDATE servicenonpubliee SET typedannonce="'.$typedannonce.'", email="'.$email.'", titre="'.$titre.'", message="'.$message.'", WHERE id= "'.$id.'" ';
mysql_query($sql) or die(mysql_error());
echo 'Vos infos ont été modifiées.';
}
else{
?>


merci

5 réponses

Krysstof Messages postés 1489 Date d'inscription   Statut Membre Dernière intervention   294
 
A vue de nez je vois 2 souci :
* $id est vide
* si $id est un numérique, il ne faut pas les apostrophe supplémentaires
1
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
$sql=' UPDATE servicenonpubliee SET typedannonce="'.$typedannonce.'", email="'.$email.'", titre="'.$titre.'", message="'.$message.'", WHERE id= "'.$id.'" '; 


t as cette ligne la aussi :

$sql='SELECT * FROM servicenonpubliee WHERE id="'.$id.'"'; 


Fais ca :

$sql="SELECT * FROM servicenonpubliee WHERE id='$id';"; 


et

$sql= "UPDATE servicenonpubliee SET typedannonce='$typedannonce', email='$email', titre='$titre', message='$message' WHERE id='$id';"; 


Fais ca aussi :

echo "<h1>mon id est $id </h1>";
en dessous de
$id = $_POST['id']; // recuperation de l'id a modifier  

Pour vérifier que ta variable id existe
1
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
ca a fonctionnée a moitié mon id apparait bien il se rend au bout du script en disant vos informations ont bien été enregistré mais quand je vais dans mon php my admin ya rien de modifier
0
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
tu as renseigné les autres varaibles ?
$typedannonce = $_POST['xxxxxxxxx'];
$email = $_POST['xxxxxxxxxxxx'];
$titre = $_POST['xxxxxxxxxxx'];
$message = $_POST['xxxxxxxxx'];
0
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
je croit que oui voila mon script modifié

<?
//connextion a la base de donnee
mysql_connect('localhost', 'auto7837', 'xxxxxxxx');
mysql_select_db("auto7837_auto");
$id = $_POST['id']; // recuperation de l'id a modifier
echo "<h1>mon id est $id </h1>";
if(is_numeric($id) && $id) {
$sql="SELECT * FROM servicenonpubliee WHERE id='$id';";
$req=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_array($req)) {
$typedannonce=$row['typedannonce']; $email=$row['email']; $titre=$row['titre']; $message=$row['message'];
}
}
if(isset($_POST['envoyer'])) {
$id = $_POST['id']; $typedannonce=$_POST['typedannonce']; $email=$_POST['email']; $titre=$_POST['titre']; $message=$_POST['message'];
//on modifie les images la requete
$sql= "UPDATE servicenonpubliee SET typedannonce='$typedannonce', email='$email', titre='$titre', message='$message' WHERE id='$id';";
mysql_query($sql) or die(mysql_error());
echo 'Vos infos ont été modifiées.';
}
else{
?>
0
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
Ah ouais met tes variables entre {} :

$sql= "UPDATE servicenonpubliee SET typedannonce='{$typedannonce}', email='{$email}', titre='{$titre}', message='{$message}' WHERE id={$id};"; 
0
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
toujours le meme probleme pas de modifications :(
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
essaie ça :

$sql="UPDATE servicenonpubliee SET typedannonce='".$typedannonce."', email='".$email."', titre='".$titre."', message='".$message."', WHERE id=" .$id ;
0
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
voila l'erreur que j'obtien a present

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 'WHERE id=' at line 1
0
naruto-94 Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   188
 
c'est la virgule avant le WHERE qu'il faut enlever
0
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
j'ai enlevé la virgule et voici l erreur maintenet


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
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
et comme ça:

$sql="UPDATE servicenonpubliee SET typedannonce='".$typedannonce."',email='".$email."',titre='".$titre."',message='".$message."' WHERE id=".$id." " ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bretonm2004 Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   2
 
c'est règlé j'ai ajouté a mon formulaire cette ligne

<input type="text" name="id" value="<?=$id;?>" size="20" style="display:none" />

et ca a reglé le probleme¸

merci a vous tous pour m'avoir aidé surtout a fxtaa pour m'avoir mis sur la piste

bonne journée :)
0