我有以下查询:
$sql = "SET @rownum := 0;
SELECT * FROM (
SELECT @rownum := @rownum + 1 AS rank, totalpoints, useridFB, username
FROM user_test ORDER BY totalpoints DESC
) as result WHERE useridFB=".$uid."";
通过它,我获得了通过在我的网络上玩一些游戏获得积分的用户的等级。
当我将它粘贴到phpMyAdmin中时,查询效果很好,我得到了正确的用户排名。
那么问题是什么?好吧,我无法显示存储在结果中的任何数据。
我尝试了平时:
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
echo $row['totalpoints'];
echo $row['rank'];
echo $row['useridFB'];
echo $row['username'];
}
但它返回错误:
警告:mysql_fetch_assoc():提供的参数不是...中的有效MySQL结果资源。
没有打印结果。
我做错了什么? 非常感谢!
答案 0 :(得分:2)
您没有检查mysql_query()的返回值。最有可能的问题是你通常不能通过mysql_query()运行多个查询 - “SET @rownum:= 0;”作为第一个查询,但在失败的mysql_query()之后快速检查mysql_error()将是一个好主意。