• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP+MySQLでスペースによる絞込み検索をかける方法)

PHP+MySQLでスペースによる絞込み検索をかける方法

このQ&Aのポイント
  • PHPとMySQLを使用して、スペースによる絞込み検索を行う方法について教えてください。
  • 検索フォームにスペースで絞込み検索を実装する方法について調べていますが、問題が発生しています。
  • 検索する人によってスペースで区切る回数が分からない場合に、スペースの回数に応じて絞込みを行う方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BENGAL
  • ベストアンサー率73% (22/30)
回答No.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 ); //配列を指定された文字で連結 参考になれば幸いです。

nikuq
質問者

お礼

ありがとうございます! まさにズバリ!のご回答です! そうか!文字列の結合を使えばいいのか!!ってすごく納得できました(^○^) for文やwhile文っていうと、縦の足し算のイメージが強くて、文字列の結合みたいな横への足し算っていう考え方が思いつきませんでした(-_-;) ほんとうに助かりました!ありがとうございますm(__)m

その他の回答 (1)

  • BENGAL
  • ベストアンサー率73% (22/30)
回答No.1

ポイントだけ、書きますね。 空白で区切られたテキストを分割する方法として、『split』という関数があります。 結果は配列ですので、『count』を使えば数は割り出せます。 その数分、WHERE句を書いてあげるようにすれば問題ないと思います。 これだけで、ご希望に添えるかと思いますが、数を数えなくても、 『foreach』を使えば、あるだけループしますので、もっと便利ではないでしょうか。 基本ですが、foreachを使用する場合は、配列であるかどうかのチェックは行ってくださいね。 参考になれば幸いです。

nikuq
質問者

補足

早速のご回答ありがとうございます。 すみません。配列数を抽出する方法は分かるのですが、その数の分だけwhere句を自動で生成する方法がわからないのです。こちらのヒントを頂けると非常にありがたいのですが・・・

関連するQ&A