Moteur de recherche en SQL

vek59 Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   -  
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche à faire un moteur de recherche, pour mon site.
Or, j'ai quelques soucis pour faire ma recherche, dans ma table, disons "articles".

Disons que j'ai des articles, je recherche dans le titre :

Il y a:
- La maison bleue
- La voiture rouge
- La maison verte

Le visiteur cherche : "la maison verte"

J'aimerais, qu'en faisant un genre de "SELECT * FROM articles WHERE titre LIKE %la maison verte%"
Cela me retourne
- La maison verte
- La maison bleue

ou encore s'il recherche "la voiture verte", cela retourne :
- La voiture rouge
- La maison verte

ou encore s'il recherche "la voirure rouge" (avec une faute de frappe), cela lui retourne:
- La voiture rouge

Bref, vous avez compris le truc.
J'utilise MySQL, mais s'il faut changer, je suis partant (pour un système s'y approchant, comme Mariadb).

5 réponses

Delphine
 
Bonjour,

je pense que pour faire ce que vous voulez, il faudrait que l'utilisateur saisisse dans 2 champs différents "objet" et "couleur".

De cette façon, on pourrait faire une requête du genre
"SELECT *
FROM articles
WHERE ( article LIKE "%objet%"
OR article LIKE "%couleur%") ;
2
vek59 Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   44
 
up
0
vek59 Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   44
 
up
0
vek59 Messages postés 118 Date d'inscription   Statut Membre Dernière intervention   44
 
Up
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour,

Juste pour info, si on veut faire la requête avec des variables recupérées par un formulaire se sera comme ceci

<?php
if(isset($_REQUEST["objet" ])) {$objet= $_REQUEST["objet" ];}
else {$objet = "";}
if(isset($_REQUEST["color" ])) {$objet= $_REQUEST["color" ];}
else {$color= "";}

$query = "SELECT * ";
$query .= "FROM articles ";
$query .= "WHERE article LIKE '%$objet%' ";
$query .= "or article LIKE '%$color%' ";
$query .= ";";
$result = execute_query($query);
?>
0