[PHP] Faire un VRAIE recherche par mots clé

Faire un VRAIE recherche par mots clé [PHP] - PHP - Programmation

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]

Reply

Marsh Posté le 30-04-2002 à 18:33:15   

Reply

Marsh Posté le 30-04-2002 à 18:42:36    

up

Reply

Marsh Posté le 30-04-2002 à 18:57:40    

une petite aide sil vous plait :)

Reply

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

Reply

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

Reply

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 ?

Reply

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]

Reply

Marsh Posté le 01-05-2002 à 10:10:05    

ah ok !!!!
ben merci beaucoup, j'ai enfin compris !!!

Reply

Marsh Posté le 01-05-2002 à 10:20:13    

ok c'est bon ca marche impec, merci beaucoup.

Reply

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 :jap:

 

[jfdsdjhfuetppo]--Message édité par ludo2604 le 01-05-2002 à 12:25:44--[/jfdsdjhfuetppo]


---------------
Make Portraits, Not War!  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed