2011-04-10 83 views
0

我發現最近的位置(與谷歌API長/ LAT)與結腸在我的SQL數據庫/ LAT半徑區域,這裏是我的查詢:PHP - MySQL的查詢問題

$query = "SELECT id, (3959 * acos(cos(radians(".$lat.")) * cos(radians(lat)) * cos(radians(lon) - radians(".$long.")) + sin(radians(".$lat.")) * sin(radians(lat)))) AS distance FROM finder_location HAVING distance < 25 ORDER BY distance LIMIT 0 , 1"; 

    $result = mysql_query($query); 

    $row = mysql_fetch_array($result); 
    echo $row['id']; 

查詢裏面是正確phpMyAdmin的迴歸爲:

id 9 
distance 0.74066713768542 

因此,查詢正確編譯...

但是,當我試圖在PHP中輸出,我得到這些錯誤:

您的SQL語法錯誤; 查看與您的MySQL服務器版本 相對應的手冊 正確的語法使用附近'>)* cos( 弧度(lat))* cos(弧度(lon) - 弧度(-73.988307))'at第1個警告:mysql_fetch_array():提供 參數不是一個有效的MySQL結果 資源

+0

您需要查看PHP中最終生成的查詢('echo $ query;')。你的一些變量似乎是空的。 – 2011-04-10 10:35:50

+1

可能$ LAT變量包含無效值,檢查它 – 2011-04-10 10:37:07

回答

3

你的PHP $lat變量沒有被正確填充。你可以在mysql錯誤中看到html標籤的尾部。調試您的$lat$long以確保它們在查詢前具有正確的值。

+0

這些變量輸出直長,緯度:40.66677, -73.988307 – alyx 2011-04-10 10:42:21

+0

不知是輸出' 40.66677'看起來像'40.66677'在您的瀏覽器,但實際上有一些HTML包裝的價值。 – 2011-04-10 10:48:12

+0

不,從兩個回聲只是換行符: 40.66677
-73.988307
alyx 2011-04-10 10:50:34