Erreur de syntaxe mysql

Bonjour,

bonjour

j'ai une erreur de ce type
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="22"' at line 1

voici la ligne en question

$id = $_POST['id']; // recuperation de l'id a modifier
$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'];
}
?>

merci de m aider

2 réponses

  1. tu n'as pas fait la concaténation sur les bonnes '

    $sql = 'SELECT * FROM servicenonpubliee WHERE id="'.$id.'"'; 
    
    // ou
    
    $sql = "SELECT * FROM servicenonpubliee WHERE id='".$id."'"; 
    
    0
    1. dans les 2 cas j'obtient une erreur sql comme dans mon precedent messages
      0
    2. Contributeur
      Tu n'as d'ailleurs pas besoin des quotes pour un ID, ce n'est pas une chaîne de caractères.
      0
  2. Tu n'as d'ailleurs pas besoin des quotes pour un ID, ce n'est pas une chaîne de caractères.

    ça dépend du contenu et du type du champ id
    - si c'est un nombre et un champ INT effectivement il ne faut pas les '
    - si c'est une chaine (pourquoi pas ?) et un champ type varchar il les faut

    mais le pb est de syntaxe dans le texte de la requette, fais un echo:

    $sql = "SELECT * FROM servicenonpubliee WHERE id='".$id."' "; 
    
    echo "Texte requette: ".$sql;
    0