将多项搜索添加到我当前的查询中

时间:2012-11-03 17:47:06

标签: php

我有一个基本的搜索引擎。在一个脚本中,它使用在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" );

1 个答案:

答案 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 ...)

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

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