所以我试图找出如何搜索多个字段,这里是我的代码:搜索多个搜索字词
if (count($error) < 1) {
$searchSQL =
"SELECT sid, sdate, stitle, slocation, skategori, stype, sbody, slist FROM job_search WHERE ";
// grab the search types.
$types = array();
$types[] = isset($_GET['title'])?"`stitle` LIKE '%{$searchTermDB}%'":'';
$types[] = isset($_GET['desc'])?"`skategori` LIKE '%{$searchTermDB}%'":'';
$types[] = isset($_GET['list'])?"`slist` LIKE '%{$searchTermDB}%'":'';
$types = array_filter($types, "removeEmpty");
if (count($types) < 1)
$types[] = "`sbody` LIKE '%{$searchTermDB}%'";
$andOr = isset($_GET['matchall'])?'AND':'OR';
$searchSQL .= implode(" {$andOr} ", $types) . " ORDER BY `stitle`";
$searchResult = mysql_query($searchSQL) or trigger_error(
"Error.<br/>" . mysql_error() . "<br />SQL Was: {$searchSQL}");
你会发现我使用在$类型复选框=阵列();如果未选中复选框,搜索将使用$ types [] =“sbody
LIKE'%{$ searchTermDB}%'”;.我想知道是如何才能让在{$ searchTermDB}多个$类型[]像一个例子:
$类型[] = “sbody
,stitle
,slist
LIKE '%{$ searchTermDB}%'” ;
当然,这并不工作,但有什么办法,我可以放下的复选框,只是用LIKE“%{$ searchTermDB}%”“搜索所有字段;
你看过MATCH AGAINST吗? – 2013-04-22 16:53:19
正因如此,你可以参考@KaiQing正在谈论的内容:[Match Against](http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html)。这是你正在寻找的答案。 – 2013-04-22 16:54:19
布尔全文搜索也可以工作:http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html – 2013-04-22 16:55:50