0

t_dealerにはdealer_name、dealer_state、dealer_postcodeが含まれますt_postcodesにはp1、p2、distが含まれます距離を調べるときは、常に低い方の(数値的に)郵便番号がp1で、高い方の郵便番号がp2であることを確認する必要があります(等しい場合を除く)。

事前質問:顧客がサイトにアクセスして郵便番号(例)3000を入力した場合、距離を与える参加(またはその他の必要なこと)を行うにはどうすればよいですか?

それはそれほど難しいことではありません、私は知っています-ただやってください

if($postcode>$dealer_postcode){

  $query="select dist from t_postcodes where p1=$dealer_postcode and p2=$postcode limit 1";

} else {

  $query="select dist from t_postcodes where p2=$dealer_postcode and p1=$postcode limit 1";

}

実際の質問:州(dealer_state)のすべてのディーラーを(jqgridを使用して)テーブルにリストする必要があります。つまり、すべてのディーラーとそれぞれの距離を$postcodeから引き出す1つのクエリが必要です。

私はさまざまな結合などを試しましたが、どこにも近づきません。

お時間をいただきありがとうございます。

4

2 に答える 2

0

答えの最初の部分は次のとおりです。

select dist,p1,p2,dealer_postcode from t_dealer, t_postcodes where (if(dealer_postcode<$user_postcode,p1,p2)=dealer_postcode) and (if(dealer_postcode<$user_postcode,p2,p1)=$user_postcode)

私は主にこのページからそれを得ました(サブクエリについて)。

2番目の部分(タイムアウトしたり、時間がかかりすぎたりせずに実行するための唯一のこと)は、結果を制限することです。私は当初約2100のディーラーを持っていました。(他の基準で)30に制限すると、正常に実行されます

于 2012-06-20T18:55:14.640 に答える
0

次の記事を使用して、別のプロジェクト(ZipCodesであることに注意してください)に対して同様のことを行いました。同じプリンシパルを取得して、それらを郵便番号に適用することができます。

MySQLを使用したZipCode半径検索

于 2012-06-20T03:27:30.520 に答える