サイト内のキーワード検索で複合(AND)検索を導入する為のコード
2012-08-04 678 1750複合検索は半角スペース区切りのワードに変換して、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検索が導入できます。