- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:単語ではなく複数語検索)
単語ではなく複数語で検索する方法
このQ&Aのポイント
- 単語ではなく複数のワードで検索する方法について解説します。
- 検索ボックスに複数のワードを入力することで、それぞれのワードに該当するデータを取得することができます。
- 検索ボックスに[コーラ お茶]などの複数のワードを入力し、データベースのテーブルに対して部分一致検索を行う方法を説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なんどか例示しているが、PHPでMySQLのWHERE句を指定するときの常套として 「WHERE 1」を書いておくのが賢明,ちなみにこれは全てを表示するという意味 条件を設定するときはANDでつなぐ。 WHERE 1 →全て表示 WHERE 1 AND X=1 →Xが1の時 WHERE 1 AND X=1 AND Y=2 →Xが1でYが2の時 プログラム的にWHERE句を書くときには格段に効率があがる なおOR検索の場合「AND (0 OR 条件1 OR 条件2 ・・・)」とつなぐ 今回の質問であれば <?PHP $arr=preg_split("/\s+/",trim($_REQUEST['usersearch'])); ; $query = "select byou,syou from kensaku2 where 1"; foreach($arr as $key=>$val){ if($val==="") continue; if($key==0) $query.=" AND (0"; $query.=" OR syou like '%".mysql_real_escape_string($val)."%'"; if($key==count($arr)-1) $query.=" )"; } print $query; ?>
その他の回答 (1)
- Suzi
- ベストアンサー率38% (130/334)
回答No.1
[コーラ お茶]の間のスペースが半角か全角か分からないので、全角か半角を全て、例えばスラッシュ「/」に変換して、その/で区切って配列に入れます。 で、foreacheとかで、上記、コーラかお茶にヒットするのを配列に入れれば良いのではないでしょうか。
お礼
詳しい回答ありがとうございました。