プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
1千件ほどのデータからいろいろな条件でデータの絞込みをしたいの
ですが、初歩的な質問で分かりにくいかもしれませんが、御指導
お願いします。

全国の求人情報サイトのように、
市町村テーブル   企業テーブル  条件テーブル  時給    
中京区       花屋      毎日      800円以上
下京区       八百屋     週末だけ    900円以上
上京区       魚屋      平日昼間   1,000円以上
左京区       文房具店    夜専門
右京区       旅館

こんな感じでSQLでテーブルを作っています。
これを検索で絞込みたいのですが、
市町村→企業→条件→時給と全部を絞り込んだり、1つだけの条件
で絞込み方法はわかるのですが、
ある場合は二つだけ、例えば企業と時給で検索をかけたり
ある場合は、市町村と条件と時給で検索をかけたりして
絞込み結果を出したいのですが、

値のない項目があるとその項目の該当条件がないために
検索結果がなしになります。

同じページにリンクを貼って、GETで値を渡して、絞込みを
したいと思っているのですが、よいお知恵をお願いします。

一番基礎的なところからご指導を頂けるとうれしいです。

こんな感じのHPが理想です。
http://www.jobengine.jp/search.html?p=lsk26

A 回答 (3件)

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分で条件式を変えてあげればいいと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

現在チャレンジ中です。
like '% %'でも大丈夫ということなのですが、
この内容がイマイチ理解できないのと
最後の$plusというのも何かを意味しているのでしょうか?

変数として追加するものがあればというような
ことなのか、このような記述が必要なのか

シンクタンクエラーとなってしまいうまく行って
くれないので、現在奮闘中です。

お礼日時:2007/07/12 10:23

like '% %' なら


もし 中央区なら like '%中央区%' となり
指定なしでも like '%%' となり 全てを検索してくれます。

$plusは、間違えました。

$plusじゃなくて$otherです。
『時給条件を加える』という意味です。

この回答への補足

ありがとうございます。

よく理解できました。

何とかうまく動いてくれました。

感謝します。

補足日時:2007/07/13 03:41
    • good
    • 0

こんにちは。


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

そうそうに御指導を頂き、ありがとうございます。

なぜか、シンクタンクエラー'{'となってしまいます。
原因を考えたりしていて返信が遅くなりました。

ただ発想の仕方はなんとなく理解できたので、
ただ今チャレンジ中です。

ありがとうございます。

お礼日時:2007/07/12 10:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!