créer un moteur de recherche


algeriezik
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 39
Inscription: 12 Avr 2008

créer un moteur de recherche

Message le Mar Aoû 25, 2009 0:18

bonjour,
je veut développer un moteur de recherche pour mon sitehttp://www.dzaffaire.com/
le problème c'est comment chercher dans une base de donné avec des mots nos relier avec la fonction Like
exemple:
j'ai dans un tableau de ma base de donné : salut comment cava toi
et je cherche a trouver salut cava (on voix dans le tableau salut cava est séparer par le mot comment) donc il ne s'affiche pas :!: :!: .

voila le code que j'ai mets:
Code: Tout sélectionner
<?php
include 'connection.php';
$name=htmlentities($_POST['name']);
$sql =mysql_query("SELECT * FROM service WHERE recherche LIKE '%$name%' ORDER BY id");
while($data = mysql_fetch_assoc($sql))
    {
echo $data['titre'];
}
?>


esque il ya une solution ou une fonction pour faire ca.
merci d'avance pour les reponses :)


NxtGen
WRInaute impliqué
WRInaute impliqué
 
Messages: 762
Inscription: 24 Oct 2006

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 1:17

Avec un explode tu pourrais faire ce que tu veux je pense :

Code: Tout sélectionner
<?php
include 'connection.php';
$name=htmlentities($_POST['name']);

// récupére chaque mot
$like = '';
$names = explode(' ', $name);
foreach ( $names as $value ) {
     $like .= ( !empty($like) ) ? ' AND ' : '';
     $like .= "recherche LIKE '%value %'";
     }
$sql =mysql_query("SELECT * FROM service WHERE $like ORDER BY id");
while($data = mysql_fetch_assoc($sql))
    {
echo $data['titre'];
}
?>


Avec ca, pour la requete "comment cava", ca retourne les résultats qui contiennent "comment" et "cava".


RiPSO
WRInaute passionné
WRInaute passionné
 
Messages: 1591
Inscription: 4 Oct 2007

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 1:54

ou alors tu peux aussi faire un replace des caracteres d'espace par des %


Bigb06
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 496
Inscription: 21 Mar 2007

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 8:34

Ou se tourner vers les fonctions de recherche en texte intégral:
http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 8:38

RiPSO a écrit:ou alors tu peux aussi faire un replace des caracteres d'espace par des %

non car ça oblige à avoir le même ordre des mots dans la bdd
Bigb06 a écrit:Ou se tourner vers les fonctions de recherche en texte intégral:
http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
quand j'avais essayé de l'utiliser, ça ne m'avait pas donné des résultats convaincants
Sinon le mieux serait d'utiliser les fonctions regex http://dev.mysql.com/doc/refman/5.0/fr/regexp.html


Anto1982
WRInaute passionné
WRInaute passionné
 
Messages: 1334
Inscription: 7 Mai 2009

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 9:18

Ou se tourner vers les fonctions de recherche en texte intégral:


Oui, je pense pour ça aussi. avec l'argument "MATCH"


RiPSO
WRInaute passionné
WRInaute passionné
 
Messages: 1591
Inscription: 4 Oct 2007

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 13:54

Leonick a écrit:non car ça oblige à avoir le même ordre des mots dans la bdd


Exact mais ça n'a pas été précisé dans la demande donc je vais au plus simple :D

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 15:11

Si tu dois rechercher dans beaucoup d'informations, le LIKE est à proscrire car trop lent, il faut se tourner vers des solutions différentes (indexation des mots-clés, etc...).

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Re: créer un moteur de recherche

Message le Mar Aoû 25, 2009 15:12

FloBaoti a écrit:Si tu dois rechercher dans beaucoup d'informations, le LIKE est à proscrire car trop lent (tout comme les recherches sur un champ texte), il faut se tourner vers des solutions différentes (indexation des mots-clés, etc...).


algeriezik
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 39
Inscription: 12 Avr 2008

Re: créer un moteur de recherche

Message le Mer Aoû 26, 2009 4:33

NxtGen a écrit:Avec un explode tu pourrais faire ce que tu veux je pense :

Code: Tout sélectionner
<?php
include 'connection.php';
$name=htmlentities($_POST['name']);

// récupére chaque mot
$like = '';
$names = explode(' ', $name);
foreach ( $names as $value ) {
     $like .= ( !empty($like) ) ? ' AND ' : '';
     $like .= "recherche LIKE '%value %'";
     }
$sql =mysql_query("SELECT * FROM service WHERE $like ORDER BY id");
while($data = mysql_fetch_assoc($sql))
    {
echo $data['titre'];
}
?>


Avec ca, pour la requete "comment cava", ca retourne les résultats qui contiennent "comment" et "cava".

merci j vais l'esseyer


Anto1982
WRInaute passionné
WRInaute passionné
 
Messages: 1334
Inscription: 7 Mai 2009

Re: créer un moteur de recherche

Message le Mer Aoû 26, 2009 8:19

Avec un explode tu pourrais faire ce que tu veux je pense :


Par contre, ça va être très très lourd....


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

  • Combinaison de mots-clés
    Cet outil vous permet de créer à partir de quelques mots-clés une liste d'expressions constituées des mots pris dans tous les ordres possibles. Il sert aux analyses de positionnement et achats de mots-clés.
  • Logiciel d'analyse du positionnement
    AgentWebRanking est un logiciel professionnel qui permet d'analyser le positionnement d'un ou plusieurs sites dans plus de 300 moteurs de recherche dans le monde. Vous pouvez ainsi analyser les performances du référencement pour de nombreux mots-clés.
  • Transformer des textes non cliquables en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité