Faire un VRAIE recherche par mots clé [PHP] - PHP - Programmation
Marsh Posté le 30-04-2002 à 19:06:54
tu sépares chaque mots contenus dans $reponse et tu fais la requete en recherche chaque mot (LIKE '%".$reponse[0]."%' OR LIKE '%".$response[1]."%' ...
ça c'est en gros
pour automatiser, tu découpes ta reponse dans un tableau (avec split) et tu fais un
while ($i<sizeof($reponse)){
$seek.= " OR LIKE '%".$reponse[$i]. "%'";
}
g pas le temps de paufiner maintenant
Marsh Posté le 30-04-2002 à 19:56:20
ok je vais tester ca
mais I c'est un nombre complexe, comme en maths non ?
bon je vai voir ce que ca donne
Marsh Posté le 30-04-2002 à 20:23:02
on peu tres bien remplacer sizeof par count ?
mais la variable seek, elle correspond a koi exactement ? au contenu de la reponse ? c'est la requete ? je le met comment exactement dans ma requete sql ?
Marsh Posté le 30-04-2002 à 23:20:19
bon je ne sais pas si j'ai vraiment bien compris la question
ce que je te propose c'est que si la personne tape "forum javasript", tu affiches toutes les réponses qui contiennent le mot "forum" ou le mot "javascript" (pour "forum" ET "javascript" tu remplaces par AND le OR de la query)
c'est ce que tu veux ?
donc on reçoit $reponse du formulaire qui contient "forum javascript"
$reponse= trim($reponse); // enlève les espaces en début et fin de chaine
$words= split(" ", $reponse); //$words[0]= "forum" et $words[1]= "javascript"
if (count($words)>0){
$query= "SELECT * FROM message WHERE reponse LIKE '%". $words[0] . "%'";
for ($i=1 ; $i<count($words) ; $i++){
$query.= " OR reponse LIKE '%". $words[$i] . "%'";
}
//execution de la query...
//mysql_query($query, $connexion); ...
//affichage du résultat
}
else{
echo "La chaine de caractère entrée est invalide";
}
[jfdsdjhfuetppo]--Message édité par ethernal le 30-04-2002 à 23:21:16--[/jfdsdjhfuetppo]
Marsh Posté le 01-05-2002 à 12:25:21
bah moi j'ai rien compris, angel92 tu peux mettre le code si possible ?
merci d'av
[jfdsdjhfuetppo]--Message édité par ludo2604 le 01-05-2002 à 12:25:44--[/jfdsdjhfuetppo]
Marsh Posté le 30-04-2002 à 18:33:15
question bete:
voila, c'est pour faire une recherche par mots clefs
kan je met dans la requete sql
.... where reponse like %$reponse% ...
mais le pb, c'est k'il fo que j'entre les mots slé dans l'ordre ou je les ai mis dans la base de donné, alors que je ve que kelke l'ordre mis dans le champ formulaire, ca soit la meme chose.
comment faire ?
[jfdsdjhfuetppo]--Message édité par angel92 le 30-04-2002 à 18:34:40--[/jfdsdjhfuetppo]