2012-07-14 54 views
1

我的問題是這樣的一個開始,我有一個JavaScript代碼,從瀏覽器獲得GPS定位。然後,因爲我不能將這些座標從javascript寫入SQL數據庫,我不能直接將它發送到php,我去控制器「站點」,它的方法「writeToDatabase」,我也添加4段到URL是實際上,我從JavaScript得到這些座標..整數與零轉換爲字符串(並保持這種領先的零)

所以在JavaScript我:

window.location = getBaseURL() + "site/writeToDatabase/" + splittedLatitude[0] + "/" + splittedLatitude[1] 
     + "/" + splittedLongitude[0] + "/" + splittedLongitude[1] + "/"; 

所以現在的瀏覽器去(只是用假座標的例子)www.mysite.com/index.php /網站/ writeToDatabase /七十〇萬七千二百二十三分之四十七/ 16/054322

現在在現場控制器我writeToDatabase方法讀取這些段(我用笨所以它是真的容易閱讀網址段)。閱讀完段後,我將第一部分緯度和第二部分緯度連接起來,並放上一個點「。」。 (所以在這個例子中我得到了47.707223和16.54322),並且我也對經度進行了同樣的處理。然後當我將這些數據寫入數據庫時​​,我的數據庫中會出現奇怪的數字,如果我的某個分段從零開始(就像在我上面的例子中),零被刪除所以從054322我得到54322,並導致16.54322就像上面的例子:)

現在這個奇怪的數字問題只發生,如果我試圖寫到數據庫的整個座標..如果我只寫第一部分的經度,或只是第二部分的經度(同緯度緯度)一切順利,正確的價值寫入..

其他人有解決這個問題?我所有的想法

+1

數字與領先的零通常被解釋爲八進制數字,如果你保持小數部分分開,檢查「怪異」位不十進制化八進制數。 – 2012-07-14 14:52:20

+1

看起來你並不關心數字,而是字符串。前導零不會以任何方式影響數字。 – 2012-07-14 14:53:38

+1

你爲什麼不只是發送的參數,因爲它們是這樣的:通過'http://www.example.com/foo/bar/ LAT = 47.11&LNG = 5.012' – fdomig 2012-07-14 14:53:51

回答

0

你爲什麼不只是發送的參數,因爲它們是這樣的:

http://www.example.com/foo/bar/?lat=47.11&lng=5.012 

但這解決這個問題。

但是你可以用簡單的字符串連接這樣做你的方式(因爲這些字符串不是整數)。

$lat = $_GET['first'] . '.' . $_GET['second]; 
+0

我仍然無法得到它的工作.. 現在我的URL看起來像這樣: www.mysite.com/index.php/site/writeToDatabase/?lat=45.7071587&lng=16.0575276 並通過笨我做這個: $ locationGPS = $ this-> uri-> segment(3); $ this-> db-> query('UPDATE table SET locationGPS ='。$ locationGPS。'WHERE id ='。$ id); 該死的.. – Drag0 2012-07-14 17:54:31

0

的整數將永遠不會有一個前導零,如果你需要一個 - 打造煤焦領域,而不是在INT(不強制轉換,如果你這樣做,以及手動)。