2011-03-06 17 views
0

私は、検索ページで選択した内容に応じてクエリを作成する検索エンジンを作っています。クエリが制限されているので、私はそれに何かを含めることはできません.IF句とクエリのwhileループで残りの部分を実行する必要があります。したがって、テーブルに年齢フィールドはありませんが、生年月日フィールドなので、IF関数を使用して年齢が正しいかどうかを確認し、whileループでユーザー名を表示します。PHP検索エンジンのヘルプ

これは問題なく動作しますが、次のような2つのフィールドを検索に追加する必要があります。郡と市区町村。現在、郡の選択を担当しています。私が自分で理解できないことは、1000 IF ELSEを持たずに、必要なすべてのフィールドに適合するユーザーをプリントアウトする方法の背後にあるロジックです。

私は、選択した郡/地域のすべての正しい郵便番号を選択して除外し、それを配列に入れてからwhileループで出力クエリを検証することを考えましたが、うまくいきませんでしたどちらか。私のデータベースで

私はこのように3つのテーブルがあります。これらの私の国のために事前に作られてい

county_table 
id, name_of_county 

municipial_table 
id, county_id, municipial_name 

zip_code_table 
zip, zip_place_name, municipial_id 

を。だから、ユーザーの郵便番号があれば、それをcounty_table(zip-> municipial-> county)に接続するために2つの異なるSELECTクエリを実行する必要があります。

だから、基本的に、私は何を言おうとしているのですか。年齢、地域、都市のフィールドが選択されているかどうかに応じて、正しいデータを持つユーザーを検索エンジンに出力します。 、これで問題がある

if($age>X){ 
    if($county==Y){ 
      if($city==Z){ 
       -OUTPUT RESULTS HERE- 
} } } 

を今すぐ:フィールドのいずれかが検索で要求されていない場合はどうすれば彼らは好きで独立しているといないする必要がありますか?言って、年齢?郡の番号?都市?私は、ネストされていない独立したIFブロックが必要だと思いますが、正しく設定する方法がわかりません。

大変お手伝いいただき、ありがとうございます。

+0

多くのMySQLを理解していないuh – mauris

+1

あなたが何を意味するかを詳しく教えてください。 – Elodee

+0

これまで持っていたSQLクエリを表示してください。そこに条件を追加することはできないはずの理由はありません。また、user_tableがzip_code_tableにどのように関係しているかは不明です。 – mario

答えて

0

ホイールを再発明しましたか?教育目的の検索エンジンを作っていない限り、すでにテストされ最適化されているものを使用してください。関連する質問thisを参照してください。

You are doing it wrong