看板 PHP 關於我們 聯絡資訊
想請教有關利用兩個資料表來計算經緯度的問題 第一個資料表包含了商家的"名稱","電話","地址","郵遞區號","商家位置的經度"與 "商家位置的緯度" 第二個資料表只包含"郵遞區號","經度","緯度"(這裡的經緯度為各郵遞區號的中心點) 我想做個搜尋的功能,讓使用者輸入郵遞區號,就可以查出此郵遞區號範圍10公里 以內的商家 例如我輸入郵遞區號"106",就利用第二個資料表的郵遞區號106中心點經緯度,去跟 第一個資料表的商家經緯度去做計算,mysql出來的結果即為所求. 但是想了很久還是想不出一個解決的方法,以下是我唯一想到的,但是跑不出來, 不知道各位高手有沒有什麼解決方法??? $zip = "zipcode.zip"; $zip1 = "steve.zip"; $lng = "zipcode.lng"; $lat = "zipcode.lat"; $lng1 = "steve.lng"; $lat1 = "steve.lat"; $sql_query = "SELECT * FROM `steve` JOIN `zipcode` on $zip=$zip1 where $zip1 like "使用者輸入的郵遞區號" IN (SELECT * FROM `steve` JOIN `zipcode` on $zip=$zip1 where (2 * 6378.137* ASIN(SQRT(POW(SIN(PI() * ($lat1 – $lat) / 360), 2) + COS(PI() * $lat1 / 180)* COS($lat* PI() / 180) * POW(SIN(PI() * ($lng1 – $lng) / 360), 2)))) <= 10) "; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.201.21
buganini:語法錯誤 06/23 17:32
buganini:先用phpmyadmin或command line確定你的SQL沒問題了, 06/23 17:33
buganini:再放進PHP吧 06/23 17:34
kerash:好複雜啊~"~.. 有些東西你要不要在php先處理過才送SQL.. 06/23 17:34
AreTheyYou:先分2個sql試試看吧 06/23 23:30
wayway2004:http://goo.gl/3jGZP 直接參考這篇吧 06/24 22:44