• ベストアンサー

検索条件で絞込みの方法を教えて下さい。

いつもお世話になります。 1千件ほどのデータからいろいろな条件でデータの絞込みをしたいの ですが、初歩的な質問で分かりにくいかもしれませんが、御指導 お願いします。 全国の求人情報サイトのように、 市町村テーブル   企業テーブル  条件テーブル  時給     中京区       花屋      毎日      800円以上 下京区       八百屋     週末だけ    900円以上 上京区       魚屋      平日昼間   1,000円以上 左京区       文房具店    夜専門 右京区       旅館 こんな感じでSQLでテーブルを作っています。 これを検索で絞込みたいのですが、 市町村→企業→条件→時給と全部を絞り込んだり、1つだけの条件 で絞込み方法はわかるのですが、 ある場合は二つだけ、例えば企業と時給で検索をかけたり ある場合は、市町村と条件と時給で検索をかけたりして 絞込み結果を出したいのですが、 値のない項目があるとその項目の該当条件がないために 検索結果がなしになります。 同じページにリンクを貼って、GETで値を渡して、絞込みを したいと思っているのですが、よいお知恵をお願いします。 一番基礎的なところからご指導を頂けるとうれしいです。 こんな感じのHPが理想です。 http://www.jobengine.jp/search.html?p=lsk26

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

  • ベストアンサー
  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.2

WHERE条件で likeを使う手もあるかと思います。 #時給条件、なしの場合 if($jikyu == ""){ $other = ""; } #時給条件、ありの場合 else { $other = "and jikyu >= '$jikyu'" } WHERE shicho like '%$shicho%' and kigyo like '%$kigyo%' and joken like '%$joken%' $plus 市町村、企業、条件はlike '% %' でも大丈夫じゃないでしょうか。時給は~円以上を使う場合if分で条件式を変えてあげればいいと思います。

nicolemen
質問者

お礼

ありがとうございます。 現在チャレンジ中です。 like '% %'でも大丈夫ということなのですが、 この内容がイマイチ理解できないのと 最後の$plusというのも何かを意味しているのでしょうか? 変数として追加するものがあればというような ことなのか、このような記述が必要なのか シンクタンクエラーとなってしまいうまく行って くれないので、現在奮闘中です。

その他の回答 (2)

  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.3

like '% %' なら もし 中央区なら like '%中央区%' となり 指定なしでも like '%%' となり 全てを検索してくれます。 $plusは、間違えました。 $plusじゃなくて$otherです。 『時給条件を加える』という意味です。

nicolemen
質問者

補足

ありがとうございます。 よく理解できました。 何とかうまく動いてくれました。 感謝します。

回答No.1

こんにちは。 GETで値を取得するのですから、後はその値を見て検索条件があれば、Where句に追加していけばいいだけです。 GETで取得するパラメータ 市町村,企業,条件,時給 と検索条件変数 $jouken="";(検索条件には初期でnullを代入) あとはパラメータの値を見て、 if(isset(市町村) and 市町村 != ""){  if($jouken == ""){   $jouken = "WHERE 市町村テーブル = 市町村";  }else{   $jouken .= " AND 市町村テーブル = 市町村";  } } ってな感じですべてのパラメータに対して同じ処理をすればOKです。 処理のイメージは 1、パラメータ市町村の値があれば、検索条件に加える。 2、$joukenがnull 検索条件が何もなければ、 新しく条件の追加、 すでに条件があれば、 andで条件の追加 をしています。 簡単ですみませんが、大体の考え方がわかるかと思いますので、後はがんばってください。

nicolemen
質問者

お礼

そうそうに御指導を頂き、ありがとうございます。 なぜか、シンクタンクエラー'{'となってしまいます。 原因を考えたりしていて返信が遅くなりました。 ただ発想の仕方はなんとなく理解できたので、 ただ今チャレンジ中です。 ありがとうございます。

関連するQ&A