1

我的问题是这个,我有一个从浏览器获取 GPS 位置的 javascript 代码。然后,因为我无法将这些坐标从 javascript 写入 SQL 数据库,也无法将其直接发送到 php,所以我转到控制器“站点”,它的方法是“writeToDatabase”,我还向 URL 添加了 4 个段,它们是实际上是我从 javascript 获得的那些坐标。

所以在javascript中我有:

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

所以现在浏览器转到(只是一个假坐标的例子)www.mysite.com/index.php/site/writeToDatabase/47/707223/16/054322

现在我在站点控制器中的 writeToDatabase 方法读取这些段(我使用 codeigniter,所以很容易读取 URL 段)。读完段后,我将纬度的第一部分和纬度的第二部分连接起来,并加上一个点“。” 介于两者之间(所以在这个例子中我得到 47.707223 和 16.54322),我对经度做同样的事情。然后当我将这些数据写入数据库时​​,我的数据库中会出现奇怪的数字,如果我的一个段以零开头(就像我上面的例子一样),零被删除,所以从 054322 我得到 54322,这导致 16.54322 就像上面的例子一样 :)

现在这个奇怪数字的问题只有在我尝试写入数据库整个坐标时才会出现。

其他人有解决这个问题的方法吗?我完全没有想法

4

2 回答 2

0

你为什么不像这样发送参数:

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

这确实解决了这个问题。

但是,您可以通过像这样的简单字符串连接按照自己的方式进行操作(因为这些是字符串而不是整数)。

$lat = $_GET['first'] . '.' . $_GET['second];
于 2012-07-14T15:14:56.793 回答
0

如果您需要一个整数,则永远不会有前导零 - 创建 CHAR 字段,而不是 INT(并且不要进行类型转换,以防您也手动执行此操作)。

于 2012-07-20T09:02:33.273 回答