Bonjour,
Je voudrais créer un moteur de recherche sur mon site qui pourrait aller chercher les résultats dans plusieurs tables de ma BDD (style : ville, pays, dans du texte).
Je crois qu'il faut utiliser $like
Je pars de zéro
Bonjour,
Je voudrais créer un moteur de recherche sur mon site qui pourrait aller chercher les résultats dans plusieurs tables de ma BDD (style : ville, pays, dans du texte).
Je crois qu'il faut utiliser $like
Je pars de zéro
bonjour,
effectivement, ce mot clé sql permet de faire une recherche "fulltext" dans une ou plusieurs tables...
je te propose de ce pas un peu de lecture c'est un bon début
puis après il y a aussi les tutos... dont celui-ci
![]()
J'essaye d'avancer, en faisant ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <html> <form method="POST" action=""> Recherche par mot clé : <input type="text" name="recherche"> <input type="SUBMIT" value="Rechercher"> </form> </html> <?php // Récupère la variable $recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; // la requete mysql $sql = mysql_query("SELECT * FROM webcam WHERE commentaire LIKE %$recherche%") or die (mysql_error()); // affichage du résultat while(list($commentaire)=mysql_fetch_array($sql)){ echo 'Resultat de la recherche: '.$commentaire.' <br />'; } ?>
c'est un bon début, bon dév
petit conseil, pour de multiples raisons, prenez l'habitude de placer votre code PHP en début de page plutôt qu'en fin.![]()
J'ai modifié mon code pour lire en local
Mais j'ai ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <html> <form method="post" action=""> Recherche par mot clef : <input type="text" name="recherche"> <input type="submit" value="Rechercher"> </form> </html> <?php // Récupère la variable mysql_connect("localhost", "root", ""); mysql_select_db('voyagez_vol'); $recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; // la requete mysql $sql = mysql_query("SELECT * FROM webcam WHERE commentaire LIKE %$recherche%") or die (mysql_error()); // affichage du résultat while(list($commentaire)=mysql_fetch_array($sql)){ echo 'Resultat de la recherche: '.$commentaire.' <br />'; } ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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
il manque les quotes autour du parametre de recherche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql = mysql_query("SELECT * FROM webcam WHERE commentaire LIKE '%${recherche}%'") or die (mysql_error());
Super, j'ai un résultat qui s'affiche et qui en plus à l'air correct !
Mais si dans ma requête je mets "select * From" le résultat qui s'affiche c'est les ID.
Mais si je mets "SELECT commentaire FROM" j'ai mon texte qui s'affiche.
Ce que je voudrais c'est faire une recherche dans plusieurs champs de ma table et afficher le résultat
Si je tape un nom de ville j'ai aucun résultat, alors quedans a BDD j'a cette ville !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <html> <form method="post" action=""> Recherche par mot clef : <input type="text" name="recherche"> <input type="submit" value="Rechercher"> </form> </html> <?php // Récupère la variable mysql_connect("localhost", "root", ""); mysql_select_db('voyagez_vol'); $recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; // la requete mysql $sql = mysql_query("SELECT ville,commentaire FROM webcam WHERE commentaire LIKE '%".$recherche ."%'") or die (mysql_error()); // affichage du résultat while(list($commentaire)=mysql_fetch_array($sql)){ echo 'Resultat de la recherche: '.$commentaire.' <br />'; } ?>
fais plutôt comme ça, c'est plus facile a comprendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // affichage du résultat while($row=mysql_fetch_array($sql)){ echo "Resultat de la recherche: ".$row['ville']." => ".$row['commentaire']."<br />"; }![]()
Ce que tu viens de m'envoyer permet d'afficher la ville et le commentaire !
Moi je veux afficher une ville, donc dans ma requête je dois ajouter dans mon WHERE ville.
Problème ça marche pas, j'ai essayé avec un AND ville... , j'avais un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql = mysql_query("SELECT ville,commentaire FROM webcam WHERE commentaire LIKE '%".$recherche ."%' AND ville LIKE '%".$recherche ."%") or die (mysql_error());
J'ai pensé à ça :
Apparemment ça marche !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part $sql = mysql_query("SELECT * FROM webcam WHERE ville LIKE '%".$recherche ."%' OR commentaire LIKE '%".$recherche ."%'") or die (mysql_error());
Partager