2012-12-30 41 views
3

可能重複:
mySQL select zipcodes within x km/miles within range of y獲得在5或10英里郵編搜索

我有2表與郵編及類別和第二位郵政編碼,緯度和經度1 。現在我要搜索...聽到的是表格式之前,我搬到我的問題
表1(uk_data)
comp_post_code CAT1 CAT2



表2(uk_pc)
郵編北緯 經度


現在我想通過費用代碼...我已經對搜索CAT1和CAT2 ...這裏是

SELECT * from uk_data where 
cat10 like :comp_post_code AND (
cat1 like :cat OR 
cat2 like :cat) 

這讓我產生這是對這個職位代碼,但現在我想搜索項目在5個礦區和10英里的地區,我該怎麼做?
我知道如何郵政編碼之間計算距離,但這裏是代碼

function distance($lat1, $lon1, $lat2, $lon2, $unit) { 

    $theta = $lon1 - $lon2; 
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); 
    $dist = acos($dist); 
    $dist = rad2deg($dist); 
    $miles = $dist * 60 * 1.1515; 
    $unit = strtoupper($unit); 

    if ($unit == "K") { 
    return ($miles * 1.609344); 
    } else if ($unit == "N") { 
     return ($miles * 0.8684); 
    } else { 
     return $miles; 
     } 
} 

,但不知道我怎樣才能得到這個循環中雛雞表2 GET結果在5或10英里......請幫助

+0

你問[「如何從多個表中的數據」(http://stackoverflow.com/questions/12475850/how-can找到-an-sql-query-return-data-from-multiple-tables),如何篩選結果數據或其他內容? – DCoder

+0

@DCoder我想知道如何獲得和過濾數據,並得到結果在5英里的結果...就像如果有人想得到結果的附近郵編AB10 1XN的貓1(書店),他應該得到的結果所有書店附近的郵政編碼在5英里以內 – Harinder

回答