我有以下查询:
$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 结果资源...
没有打印结果。
我做错了什么? 非常感谢!
最佳答案
您没有检查 mysql_query() 的返回值。最有可能的问题是您无法正常通过 mysql_query() 运行多个查询 - “SET @rownum := 0;”作为第一个查询,但在 mysql_query() 失败后使用 mysql_error() 快速检查将是一个好主意。
关于php - 访问存储在该查询返回的结果中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102455/