サイト内のキーワード検索で複合(AND)検索を導入する為のコード

2012-08-04 11:39:29
複合検索は半角スペース区切りのワードに変換して、explode関数で半角スペース区切りで配列に格納し、foreach文でWHEREのSQL文を生成します。foreach文でエラーを出さない為に、ループの前にis_array関数で配列であるかの確認しておきましょう。

$q = str_replace(' ',' ',trim($_GET['q'])); //*1 下記説明
$array = explode(' ',$q);
if(is_array($array)){
    foreach($array as $val){
        $str = ($sql)?' AND':'';
        $sql .= "$str (`subject` LIKE '%$val%' OR `body` LIKE '%$val%')";
    }
}

*1 前後の空白を除去し、全角スペースを半角に変換

短いコードですが、これだけでAND検索が導入できます。
カテゴリ: PHP