我有一个基本的搜索引擎。在一个脚本中,它使用在html网页中扫描的单词填充MYSQL表。基于单词搜索,它在网页中出现最多的单词时对结果进行排名。
但我需要处理多个术语查询。有没有办法从下面的查询中搜索多个术语?
$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" );
答案 0 :(得分:1)
可能的解决方案我没有测试过。 将帖子关键字提交为数组或将它们分别收集到数组中。
然后将$ keyword数组转换为首先使用implode
的字符串$keywords = implode(',', $_POST['keyword']);
并使用
w.word_word IN ($keywords)
或者将内爆放入你的陈述中。
w.word_word IN (".implode(',', $keywords').")
无论哪种方式,您最终都会使用mysql阅读
w.word_word IN (keyword1, keyword2, keyword3 ...)