【发布时间】:2013-03-30 20:27:41
【问题描述】:
我有一个由用户组成的 mysql 数据库。在该数据库中,有一个“分数”列。我想为用户制作个人资料,但它会显示他们的排名。我不想在服务器端做这个,所以我试图从个人资料页面本身做。这是我当前的代码:
$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while(mysql_fetch_assoc($sql3)){
$rank++;
}
echo "<b>Rank: </b>#$rank<br/>";
我也试过了:
$sql3 = mysql_query("SELECT * FROM members ORDER BY score DESC") or die("Could not allocate information!");
$rank = 0;
while(mysql_fetch_assoc($sql3)){
$rank++;
echo "<b>Rank: </b>#$rank<br/>";
}
无论哪种方式,每个用户都有相同的排名,#2。我有什么办法可以做到这一点吗?如果您需要更多信息,请发表评论,不要贬低我。谢谢。
【问题讨论】:
-
在设置
$rank之后,在while循环中尝试echoing。在您的第二次尝试中,您使用了$num而不是$rank。 -
欢迎来到 Stack Overflow! Please, don't use
mysql_*functions 在新代码中。它们不再被维护并且是officially deprecated。看到红框了吗?改为了解准备好的语句,并使用pdo 或mysqli。 -
抱歉,我修复了我的代码。它曾经是 num,但现在是排名。无论哪种方式,它仍然将每个人显示为 2 级,如果我同时添加回声,他们将获得 1-2 级(我有 2 个用户)。
-
你不指望他们在while回声的时候能拿到排名1和2吗?
-
您是否考虑过使用
mysql_num_rows()函数,而不是在不使用它们的情况下循环获取结果?