Probleme Moteur de recherche mysql
6 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
Probleme Moteur de recherche mysql
Bonjour à tout le monde
Je sais que le titre n'est pas très expressif.
Je vais vous expliquer mon problème.
J'ai un moteur de recherche sur mon site que j'ai fait moi-même avec des requêtes mysql
Mais il ne recherche que l'expression exacte et je voudrais proposer de faire une recherche comme dans l'annuaire de wri
Ou il serait possible de faire une recherche sur tous les mots ou de faire une recherche avec l'expression exacte.
en gros mon code est comme cela
Je sais comment séparer ma requetes $query=split(" ",$query);
mais je ne sais pas comment afficher la requête s’il y a plusieurs mots
merci de votre aide
christophe
Je sais que le titre n'est pas très expressif.
Je vais vous expliquer mon problème.
J'ai un moteur de recherche sur mon site que j'ai fait moi-même avec des requêtes mysql
Mais il ne recherche que l'expression exacte et je voudrais proposer de faire une recherche comme dans l'annuaire de wri
Ou il serait possible de faire une recherche sur tous les mots ou de faire une recherche avec l'expression exacte.
en gros mon code est comme cela
- Code: Tout sélectionner
$q = "select truc, machin from table_de_texte where truc LIKE '%$query%' OR truc LIKE '$query'";
$result = sql_query($q, $dbi);
$rows = sql_num_rows($result, $dbi);
while(list($truc, $machin) = sql_fetch_row($result, $dbi)) {
echo le lien;
}
Je sais comment séparer ma requetes $query=split(" ",$query);
mais je ne sais pas comment afficher la requête s’il y a plusieurs mots
merci de votre aide
christophe
Pour mon moteur j'utiliseun truc du genre :
$search=strtolower($search); // on passe les mots recherchés en minuscules
$mots = str_replace("+", " ", trim($search)); // on remplace les + par des espaces
$mots = str_replace("\"", " ", $mots); // on remplace les " par des espaces
$mots = str_replace(",", " ", $mots); // on remplace les , par des espaces
$mots = str_replace(":", " ", $mots); // on remplace les : par des espaces
$tab=explode(" " , $mots); // on place les differents mots dans un tableau
$nb=count($tab);
// on compte le nbr d'élément du tableau.
// CA c'est pour la recherche en phrase exacte
if ($operateur=='exact'){
$selection2="select truc, machin from TABLE where (truc like '%$search%' or machin like '%$search%') order by titre";
}
else
// CA c'est pour la recherche par mots (avec OR ou AND)
// remplacer $operateur par OR ou AND
{
$selection2="select truc, machine from TABLE where (truc like \"%$tab[0]%\" or machine like \"%$tab[0]%\") "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$selection2.="$operateur (truc like \"%$tab[$i]%\" or machin like \"%$tab[$i]%\")"; // on boucle pour integrer tous les mots dans la requête
}
$selection2.=" order by titre ";
}
if ($result_compter2=mysql_db_query($login,$selection2))
$search=strtolower($search); // on passe les mots recherchés en minuscules
$mots = str_replace("+", " ", trim($search)); // on remplace les + par des espaces
$mots = str_replace("\"", " ", $mots); // on remplace les " par des espaces
$mots = str_replace(",", " ", $mots); // on remplace les , par des espaces
$mots = str_replace(":", " ", $mots); // on remplace les : par des espaces
$tab=explode(" " , $mots); // on place les differents mots dans un tableau
$nb=count($tab);
// on compte le nbr d'élément du tableau.
// CA c'est pour la recherche en phrase exacte
if ($operateur=='exact'){
$selection2="select truc, machin from TABLE where (truc like '%$search%' or machin like '%$search%') order by titre";
}
else
// CA c'est pour la recherche par mots (avec OR ou AND)
// remplacer $operateur par OR ou AND
{
$selection2="select truc, machine from TABLE where (truc like \"%$tab[0]%\" or machine like \"%$tab[0]%\") "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$selection2.="$operateur (truc like \"%$tab[$i]%\" or machin like \"%$tab[$i]%\")"; // on boucle pour integrer tous les mots dans la requête
}
$selection2.=" order by titre ";
}
if ($result_compter2=mysql_db_query($login,$selection2))
Sinon pour moi vous avez pas une soluce pour que sur mon site de recettes s'affichent les résultats de mon forum phpbb ( sur un autre hébergement) ? le soucis c'est que l'on ne peut pas lier la base sql du forum via un site externe !
ya bien google websearch mais l'intégration est pas top!
Des idées ?
pour t'aider sinon j'ai ça issue du portail artivelocity
ya bien google websearch mais l'intégration est pas top!
Des idées ?
pour t'aider sinon j'ai ça issue du portail artivelocity
MERCI D'AVANCE
// formatage des mots clef
$motsclef6 = explode(" ",$motsclef);
$motsclef5 = explode(" ",$motsclef);
$motsclef4 = explode(" ",$motsclef);
$motsclef3 = explode(" ",$motsclef);
$motsclef2 = explode(" ",$motsclef);
$motsclef = explode(" ",$motsclef);
/** RECHERCHE DOSSIERS ******************/
// construction de la requete sql dossier
$sql = "SELECT * FROM ".$extension."dossier";
$passage = 0;
while(list(,$motclef) = each($motsclef)) {
$motclef = AddSlashes($motclef);
if($passage) $sql .= ") AND ("; else $sql .= " WHERE (";
$sql .= "titreDossier LIKE '%$motclef%' OR chapoDossier LIKE '%$motclef%'";
$passage = 1;
}
$sql .= ") and pubDossier='1'";
Merci a toi Scores cela fonctionne très bien.
Je dois encore faire quelques petites modifications et cela sera sur mon site.
Pour ponko j'ai peut être une solution
Tu peux faire avec un form qui renvoi sur une page iframe qui tu auras fait toi-même pour pouvoir afficher les résultats du forum phpbb.
Je dois encore faire quelques petites modifications et cela sera sur mon site.
Pour ponko j'ai peut être une solution
Tu peux faire avec un form qui renvoi sur une page iframe qui tu auras fait toi-même pour pouvoir afficher les résultats du forum phpbb.
Juste pour info, pour développer un moteur de recherche avec PHP/MySQL, il est plus simple et efficace de passer par la fonction MATCH de MySQL et ses fonctionnalités FULL TEXT. En mode BINARY vous pourrez utiliser des opérateurs comme + et - pour inclure ou exclure des expressions, une liste complète des fonctionnalités se trouvent dans le manuel : (), *... C'est bien plus puissant que d'utiliser LIKE et en gros ça vous permet d'avoir un moteur de recherche "style Google" mais en moins puissant... évidemment
.
6 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 :
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Alexa lance un moteur de recherche d'images
- Interview Wikio : transcript du chat WebRankInfo
- Google achète l'ile GoGooroa
- Microsoft rachète Powerset, moteur de recherche sémantique
Consultez la description détaillée des produits ou services de Google suivants : Google SearchMash
- 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 0 invités







le forum