【发布时间】:2015-06-05 05:37:39
【问题描述】:
我正在尝试从 android 应用程序获取位置(纬度、经度)并使用 php 插入数据库,然后提取 10m 半径内的数据。
问题是,当我使用智能手机测试代码时(本地测试可以),数据没有正确插入。表 'usergps' 有 3 列(名称、纬度、经度),在我测试代码后,插入了 ( , 0, 0)。
你能检查下面的 php 代码吗? 如果正确的话,我想我应该检查一下java代码。
<?php
if(isset($_POST['name']) && $_POST['name'] != '') {
require_once("include/db_info.php");
$s=mysql_connect($SERV,$USER,$PASS) or die("fail to connect to mysql");
mysql_select_db($DBNM);
$lat = $_POST['lat'];
$lon = $_POST['lon'];
$name = $_POST['name'];
$result= mysql_query("SELECT * FROM usergps WHERE name = '".$name."'");
$row = mysql_num_rows($result);
if($row == 0) {
mysql_query("INSERT INTO usergps (name,latitude,longitude)
VALUES
('".$name."', '".$lat."', '".$lon."')");
}
else {
mysql_query("UPDATE usergps SET latitude = '".$lat."' WHERE name = '".$name."'");
mysql_query("UPDATE usergps SET longitude = '".$lon."' WHERE name = '".$name."'");
}
$query = mysql_query("SELECT
*,
( 6371 * acos( cos( radians('".$lat."') ) * cos( radians( latitude ) ) * cos( radians( longitude )
- radians('".$lon."') ) + sin( radians('".$lat."') ) * sin( radians( latitude ) ) ) ) AS distance
FROM usergps
HAVING distance <= 0.01
ORDER BY distance ASC");
if(!$query) die ('Unable to run query:'.mysql_error());
$numpeople = mysql_num_rows($query);
echo json_encode($numpeople);
} else {
$response["error"] = TRUE;
$response["error_msg"]= "Required parameter 'name' is missing!";
echo json_encode($response);
}
?>
【问题讨论】:
-
也向我们展示您的 java 代码。
-
看起来您在名称中收到空字符串。可能是你的表单有问题