Syntaxe de requête de recherche [PHP / Mysql]
Résolu/Fermé
A voir également:
- Syntaxe de requête de recherche [PHP / Mysql]
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Easy php - Télécharger - Divers Web & Internet
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Mysql community server - Télécharger - Bases de données
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum Windev
5 réponses
Je viens de me rendre compte que j'avais mal rédigé mon formulaire. J'ai corrigé en enlevant les champs en trop, mais le problème persiste :
Le formulaire :
Merci de votre aide!
Erreur de syntaxe pr�s de 'FROM journaux WHERE id LIKE %cholestérol% OR journal LIKE %ch' � la ligne 1
Le formulaire :
<?php // Récupère la variable $recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; // la requete mysql $sql = mysql_query( "SELECT id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8, FROM journaux WHERE id LIKE %$recherche%" . " OR journal LIKE %$recherche%" . " OR titre LIKE %$recherche%" . " OR date LIKE %$recherche%" . " OR numero 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 die (mysql_error()); // affichage du résultat while(list($id, $journal, $titre, $date, $numero, $notes, $mot1, $mot2, $mot3, $mot4, $mot5, $mot6, $mot7, $mot8)=mysql_fetch_array($sql)){ echo 'Resultat de la recherche: '.$id.', '.$doc.', '.$titre.', '.$date.', '.$numero.', '.$notes.', '.mot1.', '.$mot2.', '.$mot3.', '.$mot4.', '.$mot5.', '.$mot6.', '.$mot7.', '.$mot8.', <br />'; } ?>
Merci de votre aide!
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 mai 2009 à 13:44
28 mai 2009 à 13:44
Essayes comme ça:
$sql = mysql_query( "SELECT id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8, FROM journaux WHERE id LIKE '%".$recherche."%' OR journal LIKE '%".$recherche."%' OR titre LIKE '%".$recherche."%' OR date LIKE '%".$recherche."%' OR numero 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 die (mysql_error());
persolaser
Messages postés
33
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
12 octobre 2014
1
>
Aldebaran
28 mai 2009 à 15:04
28 mai 2009 à 15:04
Salut
Dans ma config (easyPhP sur PC et idem sur serveur distant) il faut mettre des ' autour du nom des champs.
Le plus simple (de ce que je pratique) est de mettre au point la requête manuellement dans phpmyadmin puis de la copier coller dans ton source et de remplacer les variables en dur dans la requete de mise au point par les variables PhP mais en respectant surtout touts les espaces, apostrophes et autres installés par phpmyadmin.
J'espère t'aider ainsi.
Roland
Dans ma config (easyPhP sur PC et idem sur serveur distant) il faut mettre des ' autour du nom des champs.
Le plus simple (de ce que je pratique) est de mettre au point la requête manuellement dans phpmyadmin puis de la copier coller dans ton source et de remplacer les variables en dur dans la requete de mise au point par les variables PhP mais en respectant surtout touts les espaces, apostrophes et autres installés par phpmyadmin.
J'espère t'aider ainsi.
Roland
Bon, j'ai corrigé mon script, je n'ai plus de message d'erreur mais cette fois voilà ce que ça m'affiche en résultat de recherche :
Je ne reçois pas les valeurs contenues dans ma table. Quelqu'un sait d'où cela peut venir? Pour rappel, le script corrigé :
Resultat de la recherche: id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8 Resultat de la recherche: id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8 Resultat de la recherche: id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8 Resultat de la recherche: id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8 Resultat de la recherche: id, journal, titre, date, numero, notes, mot1, mot2, mot3, mot4, mot5, mot6, mot7, mot8
Je ne reçois pas les valeurs contenues dans ma table. Quelqu'un sait d'où cela peut venir? Pour rappel, le script corrigé :
<?php // Récupère la variable $recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; // la requete mysql $sql = mysql_query( "SELECT 'id', 'journal', 'titre', 'date', 'numero', 'notes', 'mot1', 'mot2', 'mot3', 'mot4', 'mot5', 'mot6', 'mot7', 'mot8' FROM journaux WHERE 'id' LIKE '%".$recherche."%' OR 'journal' LIKE '%".$recherche."%' OR 'titre' LIKE '%".$recherche."%' OR 'numero' LIKE '%".$recherche."%' OR 'date' 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 die (mysql_error()); // affichage du résultat while(list($id, $journal, $titre, $numero, $date, $notes, $mot1, $mot2, $mot3, $mot4, $mot5, $mot6, $mot7, $mot8)=mysql_fetch_array($sql)){ echo 'Resultat de la recherche: '.$id.', '.$journal.', '.$titre.', '.$numero.', '.$date.', '.$notes.', '.$mot1.', '.$mot2.', '.$mot3.', '.$mot4.', '.$mot5.', '.$mot6.', '.$mot7.', '.$mot8.' <br />'; } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu as mis des ' autour des noms de champs comme te l'a conseillé persolaser, tu as tout faux et ça explique le résultat. Contrairement à ce qu'il dit, il n'a jamais fallu mettre d'apostrophes autour des noms de champ en mysql, ni chez lui ni ailleurs. Ce sont des accents graves ` (ou rien du tout). N'obéis pas aux conseils aveuglément, regarde la manuel mysql.
Par contre, ton list ne devrait pas marcher avec un array associatif. Tu devrais faire un mysql_fetch_row au lieu de mysql_fetch_array
Par contre, ton list ne devrait pas marcher avec un array associatif. Tu devrais faire un mysql_fetch_row au lieu de mysql_fetch_array