2012-11-03 4 views
1

J'ai un moteur de recherche de base. Dans un script, il remplit une table MYSQL avec des mots analysés dans la page Web html. Basé sur une recherche par mot, il classe les résultats lorsque les mots apparaissent le plus dans la page Web.Ajouter plusieurs termes Recherche à ma requête actuelle

Mais j'ai besoin de travailler sur l'interrogation à plusieurs termes. Existe-t-il un moyen de rechercher plusieurs termes de ma requête ci-dessous?

 $keyword = addslashes($_POST['keyword']); 
    $results = addslashes($_POST['results']); 

     /* Execute the query that performs the actual search in the DB: */ 

     $result = mysql_query(" SELECT p.page_url AS url, 
         COUNT(*) AS occurrences 
         FROM page p, word w, occurrence o 
         WHERE p.page_id = o.page_id AND 
         w.word_id = o.word_id AND 
         w.word_word = \"$keyword\" 
         GROUP BY p.page_id 
         ORDER BY occurrences DESC 
         LIMIT $results"); 

Répondre

1

Solution possible Je n'ai pas testé. Soumettre des mots clés en tant que tableau ou les collecter séparément dans un tableau.

Ensuite, soit convertir tableau de mots clés $ à une chaîne d'abord avec imploser

$keywords = implode(',', $_POST['keyword']); 

et utiliser

w.word_word IN ($keywords) 

Ou mettre le imploser dans votre déclaration.

w.word_word IN (".implode(',', $keywords').") 

Quoi qu'il en soit vous vous retrouvez avec mysql lecture

w.word_word IN (keyword1, keyword2, keyword3 ...) 

refrences: Select from mysql table WHERE field='$array'?

http://data.agaric.com/mysql-where-1-4-5-syntax

Questions connexes