je vous met le code ci-dessous.
vue que vous m'avez pas mal aidé et aiguillé je vous offre le code du moteur de recherche que j'ai créé.
un grand merci a tous.
<?php
//connectio bd
mysql_connect('localhost','root','');
mysql_select_db('base_de_donnee');
//on verifie si le champs n'est pas vide
if($_POST['recherche']==NULL) { echo'le champs recherche est vide.'; exit(); }
$recherch = $_POST['recherche'];
$recrherche_produit = $_POST['recherche'];
// On supprime les accents et on remplace les c en s ainsi que tout charactere speciaux
$replace=array('à','â','ä','ç','c','è','é','ê','ë','î','ï','y','ô','ö','ù','û','ü',"'",'&','"','<','>','=','-','_','/',':',';',',','.','?','(',')','\\');
$by= array('a','a','a','s','s','e','e','e','e','i','i','i','o','o','u','u','u',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ');
$recherch = str_replace($replace,$by,$recherch);
//on met tout en minuscule
$recherch = strtolower($recherch);
//on supprime les doubles characteres
$recherch = preg_replace('`(.)\1`', '$1', $recherch);
//on enleve les terminaison se finissant pat "t","d","s","x"
$recherch = preg_replace( '`[s]$`', ' ', $recherch);
$recherch = preg_replace( '`[tdxe]$`', ' ', $recherch);
$recherch = preg_replace( '`[s] `', ' ', $recherch);
$recherch = preg_replace( '`[tdxe] `', ' ', $recherch);
//on ajoute le mots ragout et le charactere & a la fin de la variable
$recherch1="".$recherch."ragout&";
//on supprime les espaces en trop
$recherch1 = preg_replace('/\s\s+/', ' ', $recherch1);
//on supprime le mot ragout et le charactere & si celui ci est preceder d'un espace.
$recherch1=str_replace(' ragout&','',$recherch1);
//on supprime le mot ragout et le charactere & si celui ci n'est pas preceder d'un espace.
$recherch1=str_replace('ragout&','',$recherch1);
//on remplace les espace par des des "|" pour préparer la recherche d'expretion reguliere
$recherch1=str_replace(' ','|',$recherch1);
echo''.$recherch1.'
<br>
résultat de votre recherche sur: <b>'.$recrherche_produit.'</b><br>
<br>';
$i=0;
//on compte le nombre de resultat obtenu pour l'afficher
$nb_resultat1=mysql_query("SELECT COUNT(*) FROM produit WHERE MATCH recherche AGAINST ('$recherch') OR recherche REGEXP '$recherch1'") or die(mysql_error());
$nb_resultat=mysql_fetch_assoc($nb_resultat1);
$nbres=$nb_resultat['COUNT(*)'];
//on fait la recherche pour en sortir les valeurs
$resultat1=mysql_query("SELECT * FROM produit WHERE MATCH recherche AGAINST ('$recherch') OR recherche REGEXP '$recherch1'") or die(mysql_error());
//si on a un nombre de reponse inferieur a 1 on affiche qu'il n'y a pas de resultat
if($nbres < 1) { echo'pas de résultat sur la recherche: <b>'.$recrherche_produit.' '.$recherch.'</b>'; }
//sinon on affiche le nombre de resultat.
else { echo'il y a '.$nbres.' resultat';
while($resultat=mysql_fetch_assoc($resultat1))
{
extract($resultat);
//si on veut afficher la position du resultat
$i++;
//entrée les resultat que vous voulez en sortir
}}
?>
