Pb résultats moteur de recherche
Posté : 13 oct. 2009, 17:15
Bonjour,
pour mon site de photos j'ai créé un petit moteur de recherche qui se base sur le nom et la description lié au photos.
le moteur de recherche fonctionne bien mais je me trouve confronté a des problemes avec les majuscules et le accents.
Probleme n°1 : le plus important et le plus urgent
Par exemple dans ma base de données j'ai des photos qui sont nommées en majuscule " ex : SAINT AME". si je fais une recherche sur "SAINT AME" j'ai 0 resultats et idem si je fais la recherche en minuscule. pour un nom standart (ex : vagney ) si je recherhce vagney alors j'ai bien les bons resultats qui sortent.
Probleme n°2 : les accents (qui n'est pas prioritaire mai j'y reviendrai par la suite apres avoir reglé le probleme 1)
Si j'ai des noms de photos avec par exemple "gérardmer" et que dans ma recherche je rentre "gérardmer" les bon resultats ressortent par contre si je rentre "gerardmer" sans l'accent j'ai 0 resultats qui sortent.
Voici comment est fait mon moteur de recherche :
page formulaire :
pour mon site de photos j'ai créé un petit moteur de recherche qui se base sur le nom et la description lié au photos.
le moteur de recherche fonctionne bien mais je me trouve confronté a des problemes avec les majuscules et le accents.
Probleme n°1 : le plus important et le plus urgent
Par exemple dans ma base de données j'ai des photos qui sont nommées en majuscule " ex : SAINT AME". si je fais une recherche sur "SAINT AME" j'ai 0 resultats et idem si je fais la recherche en minuscule. pour un nom standart (ex : vagney ) si je recherhce vagney alors j'ai bien les bons resultats qui sortent.
Probleme n°2 : les accents (qui n'est pas prioritaire mai j'y reviendrai par la suite apres avoir reglé le probleme 1)
Si j'ai des noms de photos avec par exemple "gérardmer" et que dans ma recherche je rentre "gérardmer" les bon resultats ressortent par contre si je rentre "gerardmer" sans l'accent j'ai 0 resultats qui sortent.
Voici comment est fait mon moteur de recherche :
page formulaire :
<div id="recherche">
<form name="formulaire" action="../recherche/search.php" method="POST" id="q">
<div class="rechselect">
<label>rechercher dans </label>
<select name="rechercherpar">
<option>Toutes les galeries</option>
<?php
$sql = "SELECT DISTINCT type FROM IWgalerie"; // requéte SQL
$req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error()); // envoie de la requéte
while($resultat = mysql_fetch_array($req))
{
echo '<option>'.$resultat['type'].'</option>';
}
?>
</select>
</div>
<div class="rechmot">
<input name="mot_cle" type="text" id="mot_cle" onfocus="if(this.value=='Précisez votre recherche')this.value='';" onblur="if(this.value=='')this.value='Précisez votre recherche';" value="Précisez votre recherche"/>
<input type="submit" value=" "/>
</div>
</form>
</div>
et ma page qui valide et donne le resultat de la recherche :<?php
function search()
{
$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];
echo '<img src="../images/fleche.png" alt="Les photos trouvées" class="imggauche" />
Vous rechercher portait sur : <span class="surljaune"> '.$mot.' </span> <br/>Pour le type de galerie : <span class="surljaune"> '.$champ. ' </span><br/>Voici les photos trouvées en fonction de votre recherche.<div class="clear"></div>';
if($champ == 'Toutes les galeries' )
{
$resultat=mysql_query("SELECT * FROM IWgalerie WHERE match(`ref`,`exemple`,`alt`) against ('$mot') ORDER BY type, ref, alt ASC");
}
elseif($champ != 'Toutes les galeries' ){
$resultat=mysql_query("SELECT * FROM IWgalerie WHERE type='$champ' AND match(`ref`,`exemple`,`alt`) against ('$mot') ORDER BY type ASC");
}
while($ligne = mysql_fetch_array($resultat))
{
$ref=$ligne['ref'];
$alt=$ligne['alt'];
$type=$ligne['type'];
echo '<div class="search"><h4>'.$type.'</h4>
<a href="../images/galerie/'.$ligne['photoref'].'" rel="lightbox[roadtrip]" title="'.$ligne['alt'].'" >
<img src="../pages/mini-galerie.php?f='.$ligne['photoref'].'" alt="'.$ligne['alt'].'" border="0" width="185px" height="124px" />
</a>
<br/>
<span class="bleucl">Nom : </span>'.$ref.' <br/>
<span class="bleucl">Déscription : </span><br/>'.$alt.'</div>';
}
}
search();
?>
</div>
voilà, jéspere que vous pourrez m'aider a résoudre au moins le 1er probleme car sans ça je peut pas mettre mon nouveau site en ligne.