複数ワード検索(PHP)の区切り文字について
PHP初心者です。
データベースの検索処理を実装しようとしています。
一般の検索エンジンのように、半角スペース、全角スペース、どちらも区切り文字として認識させて、スペースで区切った複数ワードによる検索抽出ができるようにしたいのです。
データベース例)
青山病院
伊藤病院
井上病院
青山歯科
鈴木歯科
「青山 井上」(全角スペース)と検索しても、「青山 井上」(半角スペース)と検索しても、
青山病院
井上病院
青山歯科
という検索結果にしたい。
実際にコードをかいてみたのが以下です。
$searchwords = "青山 井上"; //全角スペース
$array_searchwords = mb_split("[ ]", $searchwords); ////[ ]には全角スペース
$sql = "SELECT hospitalname FROM hospital";
foreach( $es_array_searchword as $k => $v ) {
# 1ワード毎のカッコ区切り(開始)
if( $k == 0 ) {
$sql .= " WHERE (";
} else {
$sql .= " OR (";
}
$sql .= " hospitalname LIKE '%${v}%'";
$sql .= " ) ";
echo $sql;
}
このようにかくと、$sqlは、
「SELECT hospitalname FROM hospital WHERE ( hospitalname LIKE '%青山%' ) OR ( hospitalname LIKE '%%' ) OR ( hospitalname LIKE '%井上%' )」
と出力されます。
要するに、$searchwords = "青山 井上";、の「全角スペース」が文字として認識されてしまいます。
これを、
「SELECT hospitalname FROM hospital WHERE ( hospitalname LIKE '%青山%' ) OR ( hospitalname LIKE '%井上%' )」
というsql文で実行できるようにしたいのです。
$array_searchwords = mb_split("[ ]", $searchwords);
の[ ]の書き方が問題になるのかなと思いますが、全角スペース区切りを生かすには、どうかけばよろしいでしょうか?