Comment créer une barre de recherche pour son site avec PHP & MySQL

Bien que ça soit deux technologies complètements différentes, PHP & MySQL cohabitent surtout pour l’apprentissage comme s’il était qu’un. Si vous apprenez le langage PHP & le SGBD MySQL, vous vous posez peut être la question de savoir comment faire ou mettre un moteur ou de recherche dans son site avec ce deux technologies…

Et bien ça tombe bien, découvrons ensemble comment programmer un moteur de recherche très mais alors très basique et afin je vous donnerai des pistes pour faire un moteur de recherche avancé.

Moteur de recherche PHP & MySQL

Devinez que vous ayez une table « article » qui a une structure suivante :

Id, titre, contenu, date_creation

Et vous voulez mettre qu’une personne puisse avoir la possibilité de rechercher un article sur base de son titre. Par exemple : taper « piment » pour retrouver les articles avec comme titre : « les piments rouges sont dangereux », « pourquoi je n’aime pas le piment », etc.

Pour aboutir à un tel résultat, tout se joue dans la requête sql de la récupération de vos articles. Pour récupérer un article, on peut faire :

Il y a aussi possibilité d’utiliser la clause WHERE

Ce qui veut dire qu’on récupère tous les articles dont la date est égale ou au-delà du 19 mai 2017.

De la même manière qu’on peut dire :

Ce qui veut dire qu’on récupère tous les articles où le titre est égal à « piment »

Ceci est vraiment trop précis mais on aimerait dire un truc du genre : « récupère tous les articles où le titre contient piment. »

Pour cela, il faut utiliser LIKE. LIKE se traduit en français par « comme ».

Ce qui veut dire qu’on récupère tous les articles où le titre est comme « piment ».

En se servant du signe %, qui est un « joker », on peut dire à peu près ce qu’on veut

Ce qui veut dire qu’on récupère tous les articles où le titre commence par « piment ».

Récupère tous les articles où le titre termine par « piment »

Récupère tous les articles où le titre contient « piment »

Pour exemple, vous retrouvez un blog minimal que j’ai fait pour vous donner l’idée de comment se servir de ce clause MySQL et un peu de PHP, pour au final avoir une barre de recherche.

search php mysql

Allez plus loin…

C’est qu’on a fait ci-dessus, est ce qu’on appelle une recherche par un mot clé. C’est-à-dire, l’utilisateur ferra la recherche que par un seul mot clé. Même s’il tapait une phrase comme « Programme de tchat », cela sera considéré comme un seul mot clé, donc, les résultats qui seront retournés sont ceux qui contiennent le mot clé « programme de tchat ».

Avec MySQL, il serait mieux d’explorer les recherches sur les index FULLTEXT pour faire des recherches un peu plus avancées. Les recherches sur plusieurs mots clés… en tapant par exemple « programme de tchat », ceci sera découpé en mot « par espace », et chaque mot sera cherché indépendamment. Ce qui ferra que programmetchat seront recherchés individuellement et l’ensemble de résultat produit pour ce deux requêtes seront renvoyés comme résultat. Cliquez ici plus d’informations sur le sujet.

Ajouter un commentaire

5 Commentaires

  1. rodrigue 8 juin 2017
    • Goms 10 juin 2017
  2. bienvenu 28 mai 2017
    • Goms 2 juin 2017
  3. bienvenu 28 mai 2017