Moteur de recherche mais comment.... ?
7 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
Moteur de recherche mais comment.... ?
Bonjour,
je sui en train de créer un annuaire en php et j'aurais besoin d'un moteur de recherche mais je sais pas trop comment procédé, j'ai regardé la requète de scripts deja fait mais je comprend pas trop le principe...j'préfère pas mettre de code que je ne comprend pas...
Alors voici à quoi ça ressemble :
Cette requète marche bien si on recherche avec UN MOT mais comment faire si il y a un ou plsieurs mots ?
Je vois ce qu'il faut faire mais je ne vois pas comment !
à priporis il faut ajouter des OR à la variable $q ! ... mais comment ?
merci pour ceux qui m'aiderons !
je sui en train de créer un annuaire en php et j'aurais besoin d'un moteur de recherche mais je sais pas trop comment procédé, j'ai regardé la requète de scripts deja fait mais je comprend pas trop le principe...j'préfère pas mettre de code que je ne comprend pas...
Alors voici à quoi ça ressemble :
- Code: Tout sélectionner
$sql = "SELECT title,url,description FROM annuaire WHERE description LIKE '%$q%' ORDER BY title ASC";
$req = mysql_query($sql) or die('Erreur SQL !'.mysql_error());
Cette requète marche bien si on recherche avec UN MOT mais comment faire si il y a un ou plsieurs mots ?
Je vois ce qu'il faut faire mais je ne vois pas comment !
à priporis il faut ajouter des OR à la variable $q ! ... mais comment ?
merci pour ceux qui m'aiderons !
- webrankinfo
Salut,
Le principe c'est de décomposer ta requête :
bien sûr il faut décomposer avec un foreach pour obtenir une boucle qui prnedra en compte le nombre de termes exacts rentrés dans le input de saisie. Mais le principe est là.
Le principe c'est de décomposer ta requête :
- Code: Tout sélectionner
$sql = "SELECT title,url,description FROM annuaire WHERE description LIKE '%$q%' ";
$sql.= " or like '%$r%'";
$sql.=" or like '%$s%'";
$sql.=" or like '%$t%'";
$sql.=" ORDER BY title ASC";
$req = mysql_query($sql) or die('Erreur SQL !'.mysql_error());
bien sûr il faut décomposer avec un foreach pour obtenir une boucle qui prnedra en compte le nombre de termes exacts rentrés dans le input de saisie. Mais le principe est là.
-

George Abitbol - WRInaute accro

- Messages: 1923
- Inscription: Ven Juin 06, 2003 7:57
D'abord tu utilises explode() pour séparer ta phrase en mots, que tu récupèreras dans un tableau. Il te faudra ensuite faire une boucle sur ce tableau en concaténant ta requête à chaque itération.
Exemple :
Fred
Exemple :
- Code: Tout sélectionner
<?php
//_____ $_GET['recherche'] est le contenu du champ de formulaire
// séparation en mots
$mots = explode(' ', $_GET['recherche']);
// debut de la requête
$sql = 'SELECT title,url,description FROM annuaire WHERE 0';
// construction de la requete avec les différents mots
foreach ($mots as $m) {
$sql .= " OR (description LIKE '%".$m."%')";
}
// fin de la requête
$sql .= ' ORDER BY title';
// suite...
?>
Fred
- David@site
- WRInaute impliqué

- Messages: 382
- Inscription: Mer Jan 14, 2004 22:36
for-each = pour chaque,
sort ton dico d'anglais
sort ton dico d'anglais
George Abitbol a écrit:D'abord tu utilises explode() pour séparer ta phrase en mots, que tu récupèreras dans un tableau. Il te faudra ensuite faire une boucle sur ce tableau en concaténant ta requête à chaque itération.
Exemple :
- Code: Tout sélectionner
<?php
//_____ $_GET['recherche'] est le contenu du champ de formulaire
// séparation en mots
$mots = explode(' ', $_GET['recherche']);
// debut de la requête
$sql = 'SELECT title,url,description FROM annuaire WHERE 0';
// construction de la requete avec les différents mots
foreach ($mots as $m) {
$sql .= " OR (description LIKE '%".$m."%')";
}
// fin de la requête
$sql .= ' ORDER BY title';
// suite...
?>
Fred
Ca, c'est un beau code, simple et clair comme je les aime.
Bien joué Fred
- FightTheWar
- Nouveau WRInaute
- Messages: 21
- Inscription: Lun Oct 06, 2003 11:34
Oui c'est un bel exemple.
Manque plus qu'à traiter les caractères spéciaux pour ne pas gener la requête et gérer les approximations pour avoir un outil de recherche performant.
Deux bons codes exemples :
http://www.nexen.net/scripts/details.ph ... str#substr
et
http://www.nexen.net/scripts/details.ph ... rray#array
Le deuxième marche vraiment bien.
Manque plus qu'à traiter les caractères spéciaux pour ne pas gener la requête et gérer les approximations pour avoir un outil de recherche performant.
Deux bons codes exemples :
http://www.nexen.net/scripts/details.ph ... str#substr
et
http://www.nexen.net/scripts/details.ph ... rray#array
Le deuxième marche vraiment bien.
7 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Alexa lance un moteur de recherche d'images
- Google achète l'ile GoGooroa
- Microsoft rachète Powerset, moteur de recherche sémantique
- Classement Xiti/1ère Position des outils de recherche en France - Août 2002
- Forum WebRankInfo : un membre du moteur de recherche Voila.fr vient discuter
- Parts de marché des moteurs en France (Décembre 2007)
- Google Code Search : moteur de recherche de codes sources
- WebRankInfo sélectionné aux Abondance d'or
- Moteur de recherche dans les blogs de Google
- Yahoo! Site Match
Consultez la description détaillée des produits ou services de Google suivants : Google SearchMash
- 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 simples citations de votre site 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 0 invités



le forum