1

我有一个搜索函数,它应该从 $keywords_search 获取数组中的所有关键字,然后创建正确的 mySQL 语句来获取结果。问题是,当我搜索多个关键字时,似乎只找到与数组中的 LAST 关键字匹配的结果。我究竟做错了什么?

这是代码:

$sr='';
foreach(explode(" ",$keywords_search) as $value){

    $sr="a.name LIKE '%".$value."%' AND";

}
$query[] = substr($sr,0,-4);

应该是搜索

a.name LIKE '%keyword1%' AND
a.name LIKE '%keyword2%' AND
a.name LIKE '%keyword3%'

var_dump(); for $query 仅显示最后一个关键字的输出,而 var_dump(); $keywords_search 显示所有关键字。

4

1 回答 1

4

让它像这样

$sr='';
foreach(explode(" ",$keywords_search) as $value){

    $sr .= " a.name LIKE '%".$value."%' AND";

}
$query[] = substr($sr,0,-4);

你忘了把一个.追加。

于 2012-05-06T16:15:09.203 回答