スペース区切りの検索について
現在PHP+CSVで簡易検索を作りましたが
この度それをMYSQLで実現させようかと考えていますが
以前のような単純なCSV検索と同様の事が
MYSQLのwhere句の部分で表現できなく困っています。
■data.csv
鈴木一郎,野球選手,東京都新宿区
鈴木次郎,サッカー選手,東京都新宿区
検索方法(andで絞込み)
キーワードを何も入れなければ全件出力。
たとえば検索キーとして
「鈴木」 「野球」と入れれば1行目が表示されるイメージです。
■PHP+CSV
$ArrKeyword=explode(" ",$KeyWord);
$Data=file("data.csv");
for ($i = 0; $i < sizeof($Data); $i++) {
for ($n = 0, $flag = 1; $n < sizeof($ArrKeyword); $n++) {
if (!mb_eregi($ArrKeyword[$n], $Data[$i])){
$flag = 0;
break;
}
}
if ($flag) {
$kensaku_kekka[] = $Data[$i];
}
}
■MYSQL
$ArrKeyword=explode(" ",$KeyWord);
$where = " WHERE concat(name,com,jyusho) Like '%$ArrKeyword[0]%' ";
if($ArrKeyword[1]){
for($i = 1; $i < sizeof($ArrKeyword); $i++) {
$where .= "AND (concat(name,com,jyusho) like '%$ArrKeyword[i]%' )";
}
}
$sql = "SELECT * FROM `keigyou_tbl` $where";
//select文を実行
if(!$res=mysql_query("$sql")){
echo "sql失敗";
exit;
}
■MYSQL版の場合2個目のキーワードが機能していません。