[Résolu] Moteur de recherche interne et les accents
8 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- Surfeurdu33_greg
- Nouveau WRInaute
- Messages: 21
- Inscription: Mar Mai 08, 2007 14:38
[Résolu] Moteur de recherche interne et les accents
Bonsoir à tous,
Je suis en train d'essayer de mettre en place un petit moteur de recherche pour mon blog.
J'ai utilisé l'un des tutos dispo ici et le moteur de recherche fonctionne très bien.
Mais il fonctionne quand la requète ne contient pas d'accents.
Exemple : si je recherche "maison" il va me trouver les articles correspondants sans problème.
Par contre si je recherche le mot "période" il me trouvera bien les articles contenant "période" mais j'aimerai aussi qu'il me trouve les articles avec le mot "periode".
Et inversement bien sur.
Voiçi le code :
Les données dans ma base de données sont stockés avec des caractères du genre é à.
Les interclassements des tables sont en "latin1_swedish_ci" et mes pages en ISO-8859-1.
Est-ce que quelqu'un pourrait me donner quelques astuces ou pistes ?
Faut-il stocker les mots directement avec des accents dans la base de données ?
Ou faut-il faire comme je le fais faire un htmlentities avant de les insérer dans la base de données.
Le problème après avec le htmlentities, c'est que si je dois faire des recherches avec LIKE , si j'ai des données de type : é dedans il ne me trouvera jamais de résultats le moteur de recherche.
J'espère être clair, et merci d'avance si vous pouvez m'aider.
Je suis en train d'essayer de mettre en place un petit moteur de recherche pour mon blog.
J'ai utilisé l'un des tutos dispo ici et le moteur de recherche fonctionne très bien.
Mais il fonctionne quand la requète ne contient pas d'accents.
Exemple : si je recherche "maison" il va me trouver les articles correspondants sans problème.
Par contre si je recherche le mot "période" il me trouvera bien les articles contenant "période" mais j'aimerai aussi qu'il me trouve les articles avec le mot "periode".
Et inversement bien sur.
Voiçi le code :
- Code: Tout sélectionner
<?php
if(isset($_POST['requete']) && $_POST['requete'] != NULL)
{
include('include/cnx_mysql.php');
$requete = htmlentities($_POST['requete'], ENT_QUOTES);
$query = mysql_query("SELECT*FROM blog WHERE body LIKE'%$requete%'ORDER BY id DESC") or die (mysql_error());
$nb_resultats = mysql_num_rows($query);
if($nb_resultats != 0)
{
?>
<h3>Résultats de votre recherche.</h3>
<p>Nous avons trouvé<?php echo $nb_resultats;
if($nb_resultats > 1) { echo ' résultats '; } else { echo ' résultat '; }
?>
dans notre base de données. Voici les fonctions que nous avons trouvé :<br/>
<br/>
<?php
while($donnees = mysql_fetch_array($query))
{
?>
<a href="fonction.php?id=<?php echo $donnees['id']; ?>"><?php echo $donnees['head']; ?></a><br/>
<?php
}
?><br/>
<br/>
<a href="test.html">Faire une nouvelle recherche</a></p>
<?php
}
else
{
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultats pour votre requête "<?php echo $_POST['requete']; ?>". <a href="test.html">Réessayez</a> avec autre chose.</p>
<?php
}
mysql_close();
}
else
{
?>
<p>Rechercher dans le blog</p>
<form action="<?phpphp $_SERVER['PHP_SELF'] ?>" method="Post">
<input type="text" name="requete" size="10">
<input type="submit" value="Ok">
</form>
<?php
}
?>
Les données dans ma base de données sont stockés avec des caractères du genre é à.
Les interclassements des tables sont en "latin1_swedish_ci" et mes pages en ISO-8859-1.
Est-ce que quelqu'un pourrait me donner quelques astuces ou pistes ?
Faut-il stocker les mots directement avec des accents dans la base de données ?
Ou faut-il faire comme je le fais faire un htmlentities avant de les insérer dans la base de données.
Le problème après avec le htmlentities, c'est que si je dois faire des recherches avec LIKE , si j'ai des données de type : é dedans il ne me trouvera jamais de résultats le moteur de recherche.
J'espère être clair, et merci d'avance si vous pouvez m'aider.
Dernière édition par Surfeurdu33_greg le Jeu Oct 18, 2007 16:10, édité 1 fois.
Le mieux est de stoquer en effet avec les accent non encodés dans la bdd... là tu peux éventuellement analyser si dans la chaine recherchée il y a des accents que tu remplaces par exemple en faisant
- Code: Tout sélectionner
$mots-cles = htmlentities($mots-cles);
-

bproductiv - WRInaute accro

- Messages: 2853
- Inscription: Lun Déc 27, 2004 16:29
Re: Moteur de recherche interne et les accents
Surfeurdu33_greg a écrit:Les interclassements des tables sont en "latin1_swedish_ci" ...
Tu es suédois
- Surfeurdu33_greg
- Nouveau WRInaute
- Messages: 21
- Inscription: Mar Mai 08, 2007 14:38
J'ai trouvé la solution ré-enregistré toutes mes entrées sans passer par le htmlentities et là effectivement çà fonctionne mieux.
bproductiv non je ne suis pas suédois mais apparement c'est l'interclassement qui est inssensible à la case et aux accents lors de recherche dans la base de données.
bproductiv non je ne suis pas suédois mais apparement c'est l'interclassement qui est inssensible à la case et aux accents lors de recherche dans la base de données.
- Surfeurdu33_greg
- Nouveau WRInaute
- Messages: 21
- Inscription: Mar Mai 08, 2007 14:38
Oui tout à fait je vais m'y mettre.
Tu aurais des suggestions pour ça toi ?
Tu aurais des suggestions pour ça toi ?
8 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Ecrire un sitemap pour Google News
- Overture en passe de racheter Altavista...
- Design de WRI version 3
- Organiser un bon netlinking interne : conseil n°8 en référencement
- Calcul du ratio de liens profonds vers un site web
- Recherche dans l'actualité WebRankInfo
- Référencement : gestion des redirections par Yahoo
- L'indice de densité idéal pour le référencement
- Alexa lance un moteur de recherche d'images
- Google Custom Search Engine (CSE) : le moteur personnalisable de Google
- moteur de recherche interne ?
- moteur de recherche interne
- Un moteur de recherche interne sécure...
- Moteur de recherche interne (résolu)
- Moteur de recherche interne au site
- optimiser un moteur de recherche interne
- Problème moteur de recherche interne
- Moteur de recherche interne mysql
- Script moteur de recherche interne
- Un moteur de recherche interne Exalead ?
- Moteur de recherche interne Google
- Moteur de recherche interne AdSense
- 01net. - moteur de recherche interne
- Recherche bon moteur interne
- Gestion des accents pour un moteur de recherche PHP
Consultez la description détaillée des produits ou services de Google suivants : Google Custom Search Engine, Google SearchMash, Google mail
- Calcul du taux de liens vers des pages internes
Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum