par
desparlsp » 28 juil. 2009, 18:26
Salut,
Desole mais ca ne marche toujours pas. J'ai toujours les meme resultats, pourtant j'ai bien respecte les espaces entre les quotes.
Voila mon morceau de code, peut etre pour mieux comprendre .
Il s'agit d'un petit moteur de recherche.
Code : Tout sélectionner
//met en minuscules le ou les mots trouvés
$mot=strtolower($mot);
//converti les caracteres speciaux en html car ceux ci dans le sont en html
$mot = htmlentities($mot, ENT_QUOTES,'UTF-8');
//met en tableaux plusieur mot saisies
$description=split(" ",$mot);
// NOMBRE D'ELEMENTS DU TABLEAU $description
$nombre_mots=count($description);
//j'initialise la premiere condition si il n'y a qu'un mot recherche
$phrase="'$description[0]' or transcription like '% $description[0] %' or transcription like '% $description[0]' or transcription like '$description[0] %'";
//dans le cadre de plusiers mot je fais une boucle pour la recherche
$z=1;
while($z<$nombre_mots)
{
$phrase.=" or '$description[%z]' or transcription like '% $description[$z] %' or transcription like '% $description[$z]' or transcription like '$description[$z] %' ";
$z++;
}
}
//ensuite j'effectue ma requette
select * from $matable where (transcription like $phrase )
Et la le resultat est le meme. dans mon exemple si je tape
ana j'obtien
"
ana"
"tati
ana" etc...
Par contre dans la fonction MATCH, il s'agit de colonnes, non? Moi il s'agirais plutot de recherche un mot exact dans un texte qui se trouve dans un champ....je ne vois pas ce que ce colonne veut dire...colonne est-ce bien le nom de mon champ????
Excusez mon ignorance....
Merci
David
Salut,
Desole mais ca ne marche toujours pas. J'ai toujours les meme resultats, pourtant j'ai bien respecte les espaces entre les quotes.
Voila mon morceau de code, peut etre pour mieux comprendre .
Il s'agit d'un petit moteur de recherche.
[code]
//met en minuscules le ou les mots trouvés
$mot=strtolower($mot);
//converti les caracteres speciaux en html car ceux ci dans le sont en html
$mot = htmlentities($mot, ENT_QUOTES,'UTF-8');
//met en tableaux plusieur mot saisies
$description=split(" ",$mot);
// NOMBRE D'ELEMENTS DU TABLEAU $description
$nombre_mots=count($description);
//j'initialise la premiere condition si il n'y a qu'un mot recherche
$phrase="'$description[0]' or transcription like '% $description[0] %' or transcription like '% $description[0]' or transcription like '$description[0] %'";
//dans le cadre de plusiers mot je fais une boucle pour la recherche
$z=1;
while($z<$nombre_mots)
{
$phrase.=" or '$description[%z]' or transcription like '% $description[$z] %' or transcription like '% $description[$z]' or transcription like '$description[$z] %' ";
$z++;
}
}
//ensuite j'effectue ma requette
select * from $matable where (transcription like $phrase )
[/code]
Et la le resultat est le meme. dans mon exemple si je tape [b]ana[/b] j'obtien
"[b]ana[/b]"
"tati[b]ana[/b]" etc...
:?
Par contre dans la fonction MATCH, il s'agit de colonnes, non? Moi il s'agirais plutot de recherche un mot exact dans un texte qui se trouve dans un champ....je ne vois pas ce que ce colonne veut dire...colonne est-ce bien le nom de mon champ????
Excusez mon ignorance....
Merci
David