【发布时间】:2012-05-25 11:08:41
【问题描述】:
我正在使用某个位置的纬度和经度搜索数据库。我想检索某个半径内的所有位置。
然后我将返回的结果编码为 JSON 并使用 ajax 检索数据,但是我得到一个未定义的错误,这意味着没有从数据库返回数据。
谁能看出我哪里出错了?
这是我的问题
$sql="SELECT *, ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `markers`
WHERE ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 < 10
ORDER BY `distance`";
$result = mysql_query($sql);
while($r = mysql_fetch_assoc($result)) $rows[] = $r;
echo json_encode($rows);
【问题讨论】:
-
建议:试试不带WHERE子句(或者更简单的WHERE子句)的查询,看看能不能先得到一些结果。分而治之,找出问题的根源。查看结果可能会提供信息的距离。
-
感谢您的回复。刚刚删除了 where 子句,仍然一无所获,还有其他想法吗?
-
SELECT * FROM markers也许? -
信息:我只是手动将纬度/经度值替换为 -32.9 和 87.01,并在我拥有的具有纬度和经度字段的数据库上获得了一些点击。该查询在 SQL 中似乎是正确的。您是否回显了 SQL 查询以查看传入的变量是否有问题?
-
只需在查询中输入一些有意义的值,仍然没有。不想听起来像个白痴,但我如何“回显 sql”
标签: php mysql ajax google-maps