[PHP]MySQLでのAND検索の実装方法
MySQLを用いたデータベースにおいて、「キーワード1[スペース]キーワード2」と検索した場合に、AND検索として判断してPHPで処理する方法。
半角スペースもしくは全角スペースもしくは「 AND 」という言葉がキーワードに挿入されていた場合、複数キーワードによる検索として処理してます。
テーブル名はdata、レコード名はkeywordと仮定します。PHPでデータベースを呼出し後、以下を記述。
$query = "SELECT * FROM data WHERE";
if($keyword){
$str = array(" ", " and ", " AND ");
$keyword = str_replace($str, " ", $keyword);
if(stristr($keyword, " ")){//複数キーワードでの検索
$ex = explode(" ", $keyword);
$count = count($ex);
for($i=0; $i<$count; $i++){
if($i!="0"){
$sql = $sql." and";
}
$sql = $sql." keyword LIKE '%{$ex[$i]}%'";
}
}else{//単体キーワードでの検索
$sql = " keyword LIKE '%{$keyword}%'";
}
}
$query = $query.$sql;
$result = mysql_query($query);
あとはPHPで出力ソースを書けばOKです。
著者/訳者:小島 まさご
出版社:ソーテック社( 2007-06-18 )
定価:¥ 2,604
Amazon価格:¥ 2,604
単行本 ( 383 ページ )
ISBN-10 : 4881665839
ISBN-13 : 9784881665831



2 Responses to “[PHP]MySQLでのAND検索の実装方法”
By あ on 11月 8, 2009 | Reply
//単体キーワードでの検索
//複数キーワードでの検索
で、わざわざ二通りで作るよりもforが入ってるので通常通り問い合わせをしてfor構文で囲めば単体であれば単体、複数であれば複数問い合わせてくれますよ?
By olisys on 11月 8, 2009 | Reply
あ様
ご指摘ありがとうございます。