Recherche PHP Mysql [problème de requête]

Fermé
Aldebaran - 28 mai 2009 à 10:00
Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 - 28 mai 2009 à 11:17
Bonjour,

Je précise tout de suite que je suis débutante en php/mysql. J'ai créé une BDD permettant de gérer des archives depuis une interface HTML. J'ai voulu créer un moteur de recherche simple pour commencer, mais j'ai quelques soucis dans la formulation de ma requête.

J'ai donc créé mon formulaire de recherche avec le code PHP qui va avec, mais quand je lance la recherche je reçois systématiquement un message d'erreur :

Erreur de syntaxe pr�s de '%cholestérol% OR journal LIKE %cholestérol% OR doc LIKE %chole' � la ligne 2


J'en déduis que ma requête est mal formulée mais je n'arrive pas à trouver où. J'ai également cherché sur les sites tutoriels de PHP (Site du Zéro, noshade, phpsources) mais sans succès. Je dois effectuer ma rechcerche dans plusieurs champs de la base. Voici le fichier php :

<?php

// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';

// la requete mysql
$sql = mysql_query(
"SELECT id, , doc, titre, auteur, date, lieu,, editeur, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8, cote  FROM archives 
WHERE id LIKE %$recherche%" .
" OR doc LIKE %$recherche%" . 
" OR titre LIKE %$recherche%" .
" OR auteur LIKE %$recherche%" .
" OR date LIKE %$recherche%" .
" OR lieu LIKE %$recherche%" .
" OR editeur LIKE %$recherche%" .
" OR notes LIKE %$recherche%" .
" OR mot1 LIKE %$recherche%" .
" OR mot2 LIKE %$recherche%" .
" OR mot3 LIKE %$recherche%" .
" OR mot4 LIKE %$recherche%" .
" OR mot5 LIKE %$recherche%" .
" OR mot6 LIKE %$recherche%" .
" OR mot7 LIKE %$recherche%" .
" OR mot8 LIKE %$recherche%" .
" OR cote LIKE %$recherche%") 

or die (mysql_error());

// affichage du résultat
while(list($id, $journal, $doc, $titre, $auteur, $date, $lieu, $numero, $editeur, $notes, $mot1, $mot2, $mot3, $mot4, $mot5, $mot6, $mot7, $mot8, $cote)=mysql_fetch_array($sql)){
echo 'Resultat de la recherche: '.$id.', '.$journal.', '.$doc.', '.$titre.', '.$auteur.', '.$date.', '.$lieu.', '.$numero.', '.$editeur.', '.$notes.', '.mot1.', '.$mot2.', '.$mot3.', '.$mot4.', '.$mot5.', '.$mot6.', '.$mot7.', '.$mot8.', '.$cote.' <br />';
}

?>


J'ai aussi une question peut-être un peu bête : faut-il obligatoirement mentionner le champ ID dans la requête de recherche?

Voilà, merci d'avance pour votre aide et vos réponses!
A voir également:

1 réponse

Jodu Messages postés 91 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 3 février 2010 14
28 mai 2009 à 11:17
Salut,

 
" OR doc LIKE %$recherche%" . 


ton guillemet est mal mis, j'aurais marqué
 
OR doc LIKE "%$recherche%" . 


Sinon pour ton id, t'es pas du tout obligé de le mettre en critère de recherche dans WHERE
0