TUTO PHP - Barre de recherche

PrimFX Boris ('PrimFX') Le 3 avril 2016

Comme vous avez été pas mal à me le demander, voici un tuto qui vous permettra de créer une barre de recherche pour votre site internet !

Bien sûr, comme dit dans la vidéo, les façons de faire sont infinies, mais je pense vous avoir présenté ici celle qui s'adaptera au plus grand nombre de sites et qui sera donc la plus polyvalente ;-)

  • Code du tuto:
<meta charset="utf-8" />
<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=primfx;charset=utf8','root','');

$articles = $bdd->query('SELECT titre FROM articles ORDER BY id DESC');
if(isset($_GET['q']) AND !empty($_GET['q'])) {
   $q = htmlspecialchars($_GET['q']);
   $articles = $bdd->query('SELECT titre FROM articles WHERE titre LIKE "%'.$q.'%" ORDER BY id DESC');
   if($articles->rowCount() == 0) {
      $articles = $bdd->query('SELECT titre FROM articles WHERE CONCAT(titre, contenu) LIKE "%'.$q.'%" ORDER BY id DESC');
   }
}
?>
<form method="GET">
   <input type="search" name="q" placeholder="Recherche..." />
   <input type="submit" value="Valider" />
</form>
<?php if($articles->rowCount() > 0) { ?>
   <ul>
   <?php while($a = $articles->fetch()) { ?>
      <li><?= $a['titre'] ?></li>
   <?php } ?>
   </ul>
<?php } else { ?>
Aucun résultat pour: <?= $q ?>...
<?php } ?>

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 31

  • fastclimber Le 20 mai, à 16:55 | Répondre

    Ah! J'oubliai 10 seconde après avoir détecter l'intrus $a promptement remplacer par un brave $q je lis:
    $articles = $bdd->query('SELECT titre FROM articles WHERE CONCAT(titre, contenu)
    contenu???
    Je l'ai laissé vivre pour voir quel dégât il allait faire dans cette pauvre barre de recherche: sa présence rend impossible la détection d'un lettre inconnue dans le listing... à éradiquer furieusement. CONCAT, il aime pas.
    Farceur le prof en plus. :0))

  • fastclimber Le 20 mai, à 16:54 | Répondre

    Ah! J'oubliai 10 seconde après avoir détecter l'intrus $a promptement remplacer par un brave $q je lis:
    $articles = $bdd->query('SELECT titre FROM articles WHERE CONCAT(titre, contenu)
    contenu???
    Je l'ai laissé vivre pour voir quel dégât il allait faire dans cette pauvre barre de recherche: sa présence rend impossible la détection d'un lettre inconnue dans le listing... à éradiquer furieusement. CONCAT, il aime pas.
    Farceur le prof en plus. :0))

  • fastclimber Le 20 mai, à 16:46 | Répondre

    Bonjour à tous
    Très efficace ce code.
    Toutefois on aura avantage à remplacer le "a" par un "q" dans la séquence





    Auquel cas tout est cohérent et plus de message d'erreur...

    Cette coquille, c'est pour voir si on suit Professeur? :0)@tiranof

  • fastclimber Le 20 mai, à 16:08 | Répondre

    Bonjour à tous
    Très efficace ce code.
    Toutefois on aura avantage à remplacer le "a" par un "q" dans la séquence





    Auquel cas tout est cohérent et plus de message d'erreur...

    Cette coquille, c'est pour voir si on suit Professeur? :0)

  • tiranof Le 10 mars, à 16:40 | Répondre

    cela m'a bien aidé merci

  • Le_dev Le 1 septembre, à 21:54 | Répondre

    @Marc79100 salut, j'ai resolu ce probleme il ya longtemps mais je me rapelle que j'ai regardé plusieurs vidéos sur le fonctionnement de la PDO php, je suis revenu carrément aux bases et c grace a ca que j'ai créé mon propre système de recherche de A à Z. Je te conseille de faire de même.

  • Marc79100 Le 1 septembre, à 21:37 | Répondre

    @Le_dev Bonsoirs, tu as fais comment car j'ai le meme probleme

  • aaronmeta Le 24 mai, à 03:52 | Répondre

    jai un projet d'un etat civil virturel et je veux integrer une barre de recherche sur ma page recherche.php
    donc je veux utiliser le numero de registre de la personne pour afficher toutes ses informations si possible
    nb: seul le numero du registre qui peut me serivre de mot clé pour faire le reherche.
    jai besoin votre aide svp je vous suis depuis dakar senegal

  • Le_dev Le 25 juillet, à 09:54 | Répondre

    En fait merci c bon g reussi tout seul et je suis genre tellement satisfait je vous dis un truc ca fait deux jours que je persévère . Je vous donne un conseille : un developpeur ne doit jamais abandonner

  • Le_dev Le 24 juillet, à 23:09 | Répondre

    Salut je voudrais inclure ce systeme avec les articles mais
    Ca me dit "undefined index: id" pourriez vous m'aider svp

  • Loicbatat Le 14 mars, à 22:02 | Répondre

    stp il faut souvant mettre les commandes sql de ta base de donnée

  • Idris-Rayan Le 3 août, à 17:20 | Répondre

    Comment mettre des liens sur les résultats des recherches ?
    merci d'avance

  • Idris-Rayan Le 3 août, à 15:01 | Répondre

    Comment mettre des liens sur les résultats des recherches ?
    merci d'avance

  • nes99 Le 17 janvier, à 16:19 | Répondre

    Salut super vidéo! Je suis tombe dessus par hasard. Comment tu as fais pour répertorier tes articles et les afficher? Tu as sans doute fait une vidéo dessus mais je viens d'arriver... donc je sais pas.

  • DimiSkl Le 16 janvier, à 19:21 | Répondre

    Bonjour,
    Comment fait-on si nous avons une table a plusieurs attribut comme "id_Titre", "titre", "date_Publication" et que l'on veut faire une recherche dans les trois colonne différentes ?
    Je n'arrive pas a trouver la requête SQL qui pourrais faire cela.
    PS : c'est pour mon projet de BTS SIO
    Merci ;)

  • J8mes Le 31 décembre, à 07:59 | Répondre

    Bjr Primfx j'apprecie beaucoup ce que tu fais grace a toi mon site est déja presque fini. Dernierement j'ai implémenté sur mon site une barre de recherche qui fonctionne tres et j'en suis ravi mais j'aimerais pouvoir ajouter l'image de chaque recette lors de la recherche de celle ci., Stp si tu peux faire un tuto 2.0 sur un moteur de recherche j'en serais tres ravi

  • Chermann Le 26 juin, à 07:34 | Répondre

    @pirlo95
    'q' c'est pour la requête qui donne 'query' en anglais. Si tu veux c'est un alias. Sauf si jee me trompe PrimFX?!

  • raphaffou Le 3 juin, à 16:28 | Répondre

    merci j'ai galeré comme un malade mais j'ai reussi merci le resultat sur musiquedebeauf.pe.hu

  • thrall-x Le 2 juin, à 08:25 | Répondre

    Bonjour
    pour commencer merci pour ces tutos il sont géniaux 
    la barre fonctionne super bien avec une table mais je coince pour relier plusieurs  tables
    j'aimerais que la barre de recherche consulte les différentes tables de ma base 
    c'est  un site pour  une armurerie
    j'ai une table [b]armes[/b] avec les champs [b]marque, référence, calibre, catégorie [/b]et[b] prix[/b] et une table [b]munitions[/b] avec les champs [b]marque, type, calibre, catégorie [/b]et[b] prix [/b]et j'aimerais qu'en tapant 357 ca me sorte les munitions et les armes disponible.

  • lebotdunet Le 2 mai, à 17:30 | Répondre

    Bonjour je n'arrive pas a changer le code pour faire une recherche de membre merci.

  • Batfire0613 Le 10 avril, à 19:43 | Répondre

    Bonjour j'ai un petit probleme:Fatal error: Call to a member function rowCount() on a non-object in C:\wamp\www\Sharing 1\pages\membres.php on line 42 merci de me répondre.

  • Santa_code Le 29 mars, à 13:41 | Répondre

    @primFx jaimerais savoir se qu'il y a dans la bdd utiliser

  • pirlo95 Le 4 mars, à 17:02 | Répondre

    Bonjour,

    J'ai mis le meme code que dans ce tuto et lorsque je fais une recherche d'un pseudo,(j'ai modifie le code pour faire une recherche d'ami) cela m'emmene ver une page blanche...
    De plus dans l'url il y a ecrit q= "ce que je recherche"
    Merci de votre aide et bonne journée!!

  • pirlo95 Le 3 mars, à 22:03 | Répondre

    Bonjour,

    J'ai mis le meme code que dans ce tuto et lorsque je fais une recherche d'un pseudo,(j'ai modifie le code pour faire une recherche d'ami) cela m'emmene ver une page blanche...
    De plus dans l'url il y a ecrit q= "ce que je recherche"
    Merci de votre aide et bonne journée!!

  • Rivens Le 13 janvier, à 04:02 | Répondre

    "on va juste passer notre q" 6:44 je rigole. Que je suis un gogole

  • hamtaro Le 27 novembre, à 22:46 | Répondre

    Perso ca me liste toute mes vidéos (j'ai adapté pour mes besoins) avant meme de faire la recherche

  • lordmagikal Le 25 août, à 21:23 | Répondre

    très bon tuto :)

  • Eldorade Le 19 juillet, à 19:44 | Répondre

    Bonjour PrimFx, pour commencer merci pour se tuto.

    J'aimerais savoir comment a tu fait ta table pour la base de donner du moteur de recherche,
    car je ne comprend pas comment sa marche.

    Merci

  • bigus Le 11 mai, à 21:45 | Répondre

    Bonjour PrimFx,
    le tuto est très sympa, mais j'aurais aimé comme nexclisson avoir une fonction de recherche à "étage" avec un champs de sélection en liste de la catégorie, et un second qui permettrait la sélection toujours en liste de la sous-catégorie (qui correspondrait à la catégorie sélectionnée dans le premier champs).
    Je ne suis pas sûr que ce soit jouable en php, mais en javascript pour ne pas avoir de rechargement de page.
    Pourrais-tu nous faire un tel tuto avec un petit exemple clair....ce serait vraiment très sympa.
    Merci

  • mokh Le 6 mai, à 01:28 | Répondre

    merciiiiii........

  • nexclisson Le 10 avril, à 17:31 | Répondre

    Y aurai possibilité de faire un tuto recherche mais en javascript pour mettre une liste de proposition ?