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);

.追加するために a を入れるのを忘れました。

于 2012-05-06T16:15:09.203 に答える