- ベストアンサー
PHP+MySQLでスペースによる絞込み検索をかける方法
- PHPとMySQLを使用して、スペースによる絞込み検索を行う方法について教えてください。
- 検索フォームにスペースで絞込み検索を実装する方法について調べていますが、問題が発生しています。
- 検索する人によってスペースで区切る回数が分からない場合に、スペースの回数に応じて絞込みを行う方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あまり、ずばりな回答を言うのは好きじゃないのですが(^^; 入力されたものが「A B C D」であれば以下の様になると思います。 $arrData = array( 'A','B','C','D' ); for ( $i=0; $i<count($arrData); $i++ ){ if ( $i != 0 ) { $where .= " AND "; } //最初以外は「AND」を付ける。 $where .= "COLUMN名 = '".$arrData[$i]."'"; } ------------------------------------------------ とりあえず、上記の方法が発想できるようになれば、 スマートな方法として、これがオススメです。 $arrData = array( 'A','B','C','D' ); $where = implode ( ' AND ' $arrData ); //配列を指定された文字で連結 参考になれば幸いです。
その他の回答 (1)
- BENGAL
- ベストアンサー率73% (22/30)
ポイントだけ、書きますね。 空白で区切られたテキストを分割する方法として、『split』という関数があります。 結果は配列ですので、『count』を使えば数は割り出せます。 その数分、WHERE句を書いてあげるようにすれば問題ないと思います。 これだけで、ご希望に添えるかと思いますが、数を数えなくても、 『foreach』を使えば、あるだけループしますので、もっと便利ではないでしょうか。 基本ですが、foreachを使用する場合は、配列であるかどうかのチェックは行ってくださいね。 参考になれば幸いです。
補足
早速のご回答ありがとうございます。 すみません。配列数を抽出する方法は分かるのですが、その数の分だけwhere句を自動で生成する方法がわからないのです。こちらのヒントを頂けると非常にありがたいのですが・・・
お礼
ありがとうございます! まさにズバリ!のご回答です! そうか!文字列の結合を使えばいいのか!!ってすごく納得できました(^○^) for文やwhile文っていうと、縦の足し算のイメージが強くて、文字列の結合みたいな横への足し算っていう考え方が思いつきませんでした(-_-;) ほんとうに助かりました!ありがとうございますm(__)m