-1

可能重复:
mysql_fetch_array() 期望参数 1 是资源,选择中给出的布尔值

我的代码:

<?php 
$Sql="SELECT *, (3959 * acos(cos(radians(37)) * cos(radians(44)) * cos(radians(55) -    radians(-122)) + sin(radians(37)) * sin(radians(44))) as distance FROM TableName       HAVING distance < 25 ORDER BY distance LIMIT 0 , 20";
$result=mysql_query($Sql); 

while ($row = mysql_fetch_array($result)){
   echo $row['Id'];
}

错误: 警告:mysql_fetch_array() 期望参数 1 是资源,在 /home 中给出布尔值...

您好,我在数据库中存储了经度和纬度,我想根据用户当前的经度和纬度以及存储在数据库中的商店经度和纬度来计算 KM - 距离。我还想要一个基于距离的排序结果。我用谷歌搜索并找到了一些解决方案,但出现了奇怪的错误。请检查我的代码。我没有在查询中使用变量。我只是想测试它是否运行。请帮忙

4

3 回答 3

1

我发现新的应该是这样的

(3959 * acos(cos(radians(37)) * cos(radians(44)) * cos(radians(55) -    radians(-122)) + sin(radians(37)) * sin(radians(44))))

您缺少“)”

于 2012-09-27T04:33:26.340 回答
1

SQL 语句中的 no ofopening parentheses不等于 no of closing parentheses

试试这个...

SELECT *, (
        3959 * acos(
                 cos(radians(37)) * cos(radians(44)) * 
                 cos(radians(55) -  radians(-122)) + 
                 sin(radians(37)) * sin(radians(44))
                )
       )
    as distance FROM TableName HAVING distance < 25 ORDER BY distance LIMIT 0 , 20
于 2012-09-27T04:42:24.560 回答
0

如果您在数据库中存储点,您可以考虑使用: http : //dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html 如果您的 MySQL 版本是 5.0.16 或更高版本。

这里有一个例子:http: //howto-use-mysql-spatial-ext.blogspot.com/

于 2012-09-27T04:43:18.243 回答