为什么我的 php/mysql 搜索字符串只与 LAST 关键字匹配


why is my php/mysql search string only matching the LAST keyword?

我有一个搜索函数,它应该从$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(); 表示$query仅显示最后一个关键字的输出,而 var_dump(); 表示 $keywords_search 显示所有关键字。

让它像这样

$sr='';
foreach(explode(" ",$keywords_search) as $value){
    $sr .= " a.name LIKE '%".$value."%' AND";
}
$query[] = substr($sr,0,-4);

您忘了放置要附加的.