我有一个php网页,它可以找到1公里半径的纬度和经度作为输入提供的所有用户。 lat和long作为数据库的输入,它生成一个包含10个用户的列表作为输出。我想在检索设备ID后向每个生成列表的用户发送一条消息。但我无法这样做。请帮忙
$sql = "SELECT number, userID,
( 6371 * acos( cos( radians(19.143) )
* cos( radians( latitude ) )
* cos( radians( longitude )
- radians(72.831) )
+ sin( radians(19.143) )
* sin( radians( latitude ) )
)
) AS distance
FROM users
WHERE device = 'android'
HAVING distance < 2
ORDER BY distance;";
$result = mysql_query($sql,$link);
if (mysql_num_rows($result) != 0)
{
while($row = mysql_fetch_assoc($result))
{
//send notification code
}
}
当我执行此代码时,我收到错误
mysql_fetch_assoc()期望参数1是资源,字符串在..
中给出
请帮忙。提前谢谢。
答案 0 :(得分:0)
请试试这个
mysql_fetch_array($result,**MYSQL_ASSOC**)
而不是:
mysql_fetch_assoc()
它可以解决您的问题
答案 1 :(得分:0)
首先检查存在或结果
if (!$result) {
echo mysql_error();
exit;
}
如果退出则调试您的查询。
答案 2 :(得分:-2)
首先想到:ORDER BY distance;";
会出错,请尝试:ORDER BY distance ASC";
所以我认为你的结果中有字符串错误信息 - 你可以在获取结果之前尝试检查mysql_error()
是否为空。
以上假设 - 连接工作和$ link set
第二个想法:按照:http://php.net/manual/en/function.mysql-query.php
**The query string should not end with a semicolon.
应正确转义查询中的数据。**