Erreur sql au secour

Résolu
bretonm2004 Messages postés 332 Statut Membre -  
bretonm2004 Messages postés 332 Statut Membre -
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 1659 Statut Membre 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 1170 Statut Membre 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 332 Statut Membre 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 1170 Statut Membre 74
 
tu as renseigné les autres varaibles ?
$typedannonce = $_POST['xxxxxxxxx'];
$email = $_POST['xxxxxxxxxxxx'];
$titre = $_POST['xxxxxxxxxxx'];
$message = $_POST['xxxxxxxxx'];
0
bretonm2004 Messages postés 332 Statut Membre 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 1170 Statut Membre 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 332 Statut Membre 2
 
toujours le meme probleme pas de modifications :(
0
naruto-94 Messages postés 904 Statut Membre 188
 
essaie ça :

$sql="UPDATE servicenonpubliee SET typedannonce='".$typedannonce."', email='".$email."', titre='".$titre."', message='".$message."', WHERE id=" .$id ;
0
bretonm2004 Messages postés 332 Statut Membre 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 904 Statut Membre 188
 
c'est la virgule avant le WHERE qu'il faut enlever
0
bretonm2004 Messages postés 332 Statut Membre 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 5413 Statut Membre 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 332 Statut Membre 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