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 sur son site et afin je vous donnerai des pistes pour faire un moteur de recherche avancé.
Barre de recherche en PHP & MySQL
Devinez que vous ayez une table « article » qui a une structure suivante :
- Id : la clé primaire en integer(11)
- titre : varchar(255)
- contenu : text
- date_creation : datetime
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 peut se jouer dans la requête sql de la récupération de vos articles. Pour récupérer un article, on peut faire :
$req = $db->query('SELECT * FROM article');
Il y a aussi possibilité d’utiliser la clause WHERE
$req = $db->query("SELECT * FROM article WHERE date_creation >= '2017-05-19'");
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 :
$req = $db->query("SELECT * FROM article WHERE titre = 'piment'");
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 ».
$req = $db->query("SELECT * FROM article WHERE titre LIKE 'piment'");
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
$req = $db->query("SELECT * FROM article WHERE titre LIKE 'piment%'");
Ce qui veut dire qu’on récupère tous les articles où le titre commence par « piment ».
$req = $db->query("SELECT * FROM article WHERE titre LIKE '%piment'");
Récupère tous les articles où le titre termine par « piment »
$req = $db->query("SELECT * FROM article WHERE titre LIKE '%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.
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 programme, tchat 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.
Salut goms ,j’avais utilisé votre lien pour télécharger des cours sur HTML/CSS que j’ai bien compris après lecture.Maintenant j’ai besoin d’un lien pour télécharger des cours sur PHP,Apache,MySQL et Javascript.je suis un débutant,aidez moi svp
Vraiment vous êtes génial.j’étais découragé pour la programmation mais vous m’avez redonné l’espoir.
Pour te donner encore plus d’espoir, saches que dans la vie de programmeur, c’est des défis qu’il faut relever… certains d’entres-eux sont juste pas à la hauteur de notre niveau et quand on arrive pas à le relever, on se voit comme si on y arrivera jamais… c’était mon cas dans les débuts et jusqu’à maintenant de fois… mais je m’en sorte toujours. Donc, courage !
bonjour .merci pour ce nouveau tuto .Moi j’utilise adobe dreamweaver 8 .peux tu m’indiquer la procédure a suivre pour créer une barre de navigation avec.
Juste une barre de navigation sans fonctionnalité ? je te conseille déjà d’éviter d’utiliser le plus souvent ce logiciel si tu veux bien être autonome ! d’ailleurs j’écrirais bientôt un tutoriel sur le workflow d’un programmeur
Comment créer un site gratuit