pour un petit moteur de recherche j'utilise dans ma requête LIKE.
$resultat=mysql_query("SELECT * FROM IWgalerie WHERE alt LIKE '%$mot%'"
Le problème que je rencontre est le suivant :Dans ma recherche si je rentre par exemple le mot '$mot' papillon j'ai bien tout mes résultats qui me ressorte avec papillon.
Maintenant si je rentre par exemple un mot composé comme "forêt sapins" les résultats qui vont ressortir seront uniquement ceux qui contiennent exactement ma requête "forêt sapins" et c'est là que je souhaiterai optimisé la chose
par exemple si je rentre "forêt sapins" je veux que les résultats qui ressortent soit a la fois les résulta qui contiennent forêt, sapins, et forêt sapins.
je sais qu'il existe la fonction fulltexte et je l'utilise d'ailleur en partie dans mon moteur de recherche mais le problème et que je suis sur un serveur dédié et que j'ai besoin de faire des recherche sur des mots de 3 lettres et que je ne peu modifié mysql pour passer de 4 lettres a 3 lettres.
j'ai donc essayé ceci :
$nbrlettre = strlen($mot);
if($nbrlettre = 3 )
{ $resultat=mysql_query("SELECT * FROM IWgalerie WHERE alt LIKE '%$mot%'");
}
else {
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");
}
}
donc si je rentre "lac" j'ai bien tout les resultats avec le mot lac -->okle hic et que maintenant si je rentre par exemple "lac toulouse" aucun resultat ne ressort alors qu'il existe bien "lac toulouse" dans la base.
je souhaite donc une aide pour résoudre au mieux se problème qui m'embête bien depuis plusieurs semaines maintenant.