Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: amadoubah570, Jujudufoot, Killian_V, PaulLavieille
Ce topic a été résolu
Auteur Sujet: Moteur de recherche !

Jujudufoot

Messages: 20

Bonjour PrimFX !

J'aimerais crée un moteur de recherche en php ! Pourrais-tu faire un tuto ?

Merci
Publicité

Thibault_Feugere

Messages: 131

Oulah ! Tu t'attaques à du lourd toi. Faire un moteur de recherche en php est réalisable mais cela dépend ce que tu entends par recherche. Un moteur de rechercher sur le web ou sur ton pc, dans ta base de donné, dans ton album photo. Certains sont plus simples à réaliser que d'autres Clin d'oeil

Jujudufoot

Messages: 20

Nous travaillons en collaboration avec un ami, je pense plus un moteur de recherche web !

J'ai testé ce code que j'ai trouvé sur internet, ne marche pas... Je ne comprend pas pourquoi !
<?php

Jujudufoot

Messages: 20

<?php
   
   //Initialisation de la variable contenant les résultats !
   $resultats = "";
   //Traitement de la requête !
   if (isset($_POST['query']) && !empty($_POST['query']))
   {
   //Si l'utilisateur a entré quelque chose, on traite sa requête...
   //On rend clean la requête de l'utilisateur !
      $query = preg_replace("#[^a-zA-Z ?0-9]#i", "", $_POST['query']);
      
      if ($_POST['filtre'] == "Site entier")
      {
      } else if ($_POST['filtre'] == "Blog")
      {      
         $sql = "SELECT id, blog_title AS title FORM blog WHERE blog_title LIKE ? OR blog_content LIKE ?";
      } else if ($_POST['filtre'] == "Pages")
      {
         $sql = "SELECT id, page_title AS title FORM pages WHERE page_title LIKE ? OR page_content LIKE ?";
      }
      //Connexion à la base de données !
      include("db_connect.php");
      $req = $db->prepare($sql);
      $req->execute(array('%'.$query.'%', '%'.$query.'%'));
      $count = $req->rowCount();
      if($count >= 1)
      {
      echo "$count résultat(s) trouvé(s) pour <strong>$query</strong> <hr/>";
      while ($data = $req->fetch(PDO::FETCJ_OBJ))
         {
            echo '#'.$data->id.' - Titre: '.$data->title;
         }
      } else
      {
         echo "0 résultat trouvé pour <strong>$query</strong> <hr/>";
      }
   }
?>
<!DOCTYPE html>
   <html>
   <head>
      <title>Système de recherche</title>
      <meta charset="utf-8">
   </head>
   <body>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"></form>
         <label for="query">Entrer votre recherche...</label><br><br>
         <input type="search" name="query" maxlength="80"  size="80" id="query"/>
         Rechercher au niveau de :
         <select name="filtre">
            <option value="Site entier">Site entier</option>
            <option value="Blog">Blog</option>
            <option value="Pages">Pages</option>
         </select>
         <input type="submit" value="Rechercher">
      </form>
      <?php echo $resultats; ?>
      </body>
      </body>
   </body>
</html>

bykertix

Messages: 32

Perso si je serai toi, j'attendrai de mis connaitre plus en php car si tu recherche des codes tout fait sur internet c'est pas trop sa quoi Grincheux;)

PrimFX
Membre Premium

Messages: 114

+1 pour @thibault_feugere et @bykertix lol

Le problème est que tu dis ceci dans ton post:
 je pense plus un moteur de recherche web ! 
Et le code que tu envoies permet uniquement la recherche dans une base de donnée, en tout cas vu la requête SQL Tire la langue

Donc quand tu dis "un moteur de recherche web", tu parles d'un Search Engine style Google, Yahoo, Bing, etc. ? Ou bien un moteur de recherche uniquement sur ton site ? Clin d'oeil

Sinon, pour répondre à ta question initiale: oui je compte faire un tuto sur la création d'une barre de recherche interne (uniquement sur son site, donc), mais je ne sais pas encore du tout quand je ferai ça Rechigne

PaulLavieille

Messages: 123

Salut !

Et pour faire un moteur de recherche mais seulement par rapport aux pages de son site, c'est compliqué ? 
Par exemple on tape "tablette" dans la barre de recherche et ça mets toutes les pages qui ont "tablette" en <TITLE> ou une meta description ?

Thibault_Feugere

Messages: 131

Non, ca n'est pas très compliqué. Pour te donner un exemple si sur le site de Primfx tu tapes Cyprien, tu vas tomber sur un article d'il y a un mois et quelques. 

PaulLavieille

Messages: 123

Et... Faut faire comment ? Tire la langue

PrimFX
Membre Premium

Messages: 114

La façon la plus simple de faire est d'utiliser le LIKE %"tonmot"% en SQL... Je pense que ce lien pourra t'être utile Clin d'oeil

PaulLavieille

Messages: 123

Ouais mais faut obligatoirement une base de donnés :/

Thibault_Feugere

Messages: 131

Oui, c'est indispensable ! Grand sourire

Jujudufoot

Messages: 20

Ouais, j'aurai aimé un navigateur web...

Sinon, quelqu'un aurait un hébergeur bien et gratuit ?

Thibault_Feugere

Messages: 131

Il n'existe aucun hebergeur web super bien gratuit et sans aucune contre-partie hélas... Rechigne
Publicité

PaulLavieille

Messages: 123

@Jujudufoot Oui ! hostinger est vraiment bien Clin d'oeil

PrimFX
Membre Premium

Messages: 114

@PaulLavieille Oui, base de donnée obligatoire, faut bien un endroit où chercher les informations Tire la langue

@Jujudufoot En effet, hostinger est pas mal pour faire des tests, configurer ses premiers serveurs mutualisés, etc. Mais tu seras assez vite limité en terme de puissance Stressé

PaulLavieille

Messages: 123

@PrimFx Il doit y avoir un moyen sans base de donnée regarde ici, c'est un bouton de recherche google pour mon site. J'aimerais ça mais sans que ça soit par Google quoi ^^ Google n'a pas une base de donnée avec des  mots pour chaque page du monde je pense Clin d'oeil 

Thibault_Feugere

Messages: 131

Oui, bien sûr et c'est ca qui est magique dans le développement web. Tu peux TOUT faire sans aucune limite mais la bdd te permettra beaucoup plus de choses. Pourquoi ne pas vouloir passer par là ? :/

PaulLavieille

Messages: 123

Je n'ai pas le temps de faire des mots clés pour chaque page :-/

PrimFX
Membre Premium

Messages: 114

Justement, tu pourrais te baser sur le LIKE en SQL qui te permettrait de gérer ça sans avoir à créer des tags spécifiques pour chaque page Sourire

PaulLavieille

Messages: 123

Je  vais pas créer un table avec 300 pages donc 300 champs ! Tire la langue 
Il y a une autre méthode ? J'ai pas compris ta question ?^^

PrimFX
Membre Premium

Messages: 114

Ahhhh mais tu veux dire que toutes tes pages sont indépendantes en HTML uniquement ? Et que le contenu n'est pas généré via une base de donnée ? Bouche bée
Sinon tu as la possibilité d'intégrer Google à ton site pour les recherches internes, mais je ne sais pas ce que ça vaut Tire la langue

PaulLavieille

Messages: 123

Oui, chaque page existe "physiquement" car je n'arrive pas à transformer page.php?id=9 en unnom/unautre/lapage :-/ 
Pour Google tu pense à ça

PrimFX
Membre Premium

Messages: 114

"car je n'arrive pas à transformer page.php?id=9 en unnom/unautre/lapage :-/"
Pour ça, faut utiliser l'URL Rewriting Tire la langue
Sinon pour Google oui je pensais à ce que tu m'as envoyé Clin d'oeil

PaulLavieille

Messages: 123

Je sais mais j'y arrive pas :-/
D'acc, tu pense que ça choquerais sur mon site ?

Killian_V

Messages: 5

Salut à toi,

Pour faire un moteur de recherche, c'est uniquement de la logique car c'est un algorithme qu'il faut utiliser. Ce que je te conseille de faire, c'est d'apprendre déjà les bases et ensuite tu pourras essayer de t'y attaquer ! Tout dépend du moteur de recherche que tu souhaites faire aussi. Si tu veux faire un moteur de recherche complexe, il va falloir faire un algorithme très complexe et difficile à mettre en place. A moins que tu apprennes à utiliser un framework qui sache gérer ce type de situation.

---
Killian
Poster une réponse