访问存储在此查询返回的结果中的数据

时间:2011-02-24 09:02:42

标签: php mysql row

我有以下查询:

$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结果资源。

没有打印结果。

我做错了什么? 非常感谢!

1 个答案:

答案 0 :(得分:2)

您没有检查mysql_query()的返回值。最有可能的问题是你通常不能通过mysql_query()运行多个查询 - “SET @rownum:= 0;”作为第一个查询,但在失败的mysql_query()之后快速检查mysql_error()将是一个好主意。