【发布时间】:2011-04-10 10:34:06
【问题描述】:
我在我的 SQL 数据库中使用 lon/lat 的半径区域中找到最近的位置(使用来自 Google API 的 long/lat),这是我的查询:
$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))'在第1行警告:mysql_fetch_array():提供 参数不是有效的 MySQL 结果 资源
【问题讨论】:
-
您需要查看在 PHP (
echo $query;) 中生成的最终查询。您的某些变量似乎为空。 -
可能$lat变量包含无效值,检查一下
标签: php mysql sql latitude-longitude