gpt4 book ai didi

php - 根据连续最高的数字对分数进行排名

转载 作者:行者123 更新时间:2023-11-29 01:23:07 25 4
gpt4 key购买 nike

我有一个名为“member_points”的表,其设置如下:

|----|-------|----------|------------------------|
| id | uid | points | last_loggedin |
|----|-------|----------|------------------------|
| 1 | 1 | 5075 | 2012-08-02 02:04:00 |
|----|-------|----------|------------------------|
| 2 | 2 | 2026 | 2012-08-04 02:15:02 |
|----|-------|----------|------------------------|

我在下面有一个函数。我希望函数根据“点”行中的数字回显或返回“排名第一”或“排名第二”之类的排名。

function getTopRanks($id) {  
$sql = "SELECT MAX(points) AS toppoints FROM member_points";
$r = mysql_query($sql);
if ( $r !== false && mysql_num_rows($r) > 0 ) {
while ( $a = mysql_fetch_assoc($r) ) {
$points = stripslashes($a['toppoints']);
return ''.$points.'';
}
}
}

有人可以帮我实现这个目标吗?

最佳答案

我认为您将根据积分 对用户进行排名。对于此类问题,我建议您首先按照DESC 顺序对用户 进行排名。然后从行中拾取期望值。

function getTopRanks($id) {

$sql = "SELECT uid FROM member_points ORDER BY points DESC ";
$r = mysql_query($sql);
if ( $r !== false && mysql_num_rows($r) > 0 ) {
while ( $a = mysql_fetch_assoc($r) ) {
$points = stripslashes($a['toppoints']);

return ''.$points.'';

}
}

}

这将解决您的问题。:)

根据您的要求更新:

function getTopRanksUser($id) {
$userPos ="Ranked position is:";
$count = 0;
$sql = "SELECT uid FROM member_points ORDER BY points DESC ";
$r = mysql_query($sql);
if ( $r !== false && mysql_num_rows($r) > 0 ) {
while ( $a = mysql_fetch_assoc($r) ) {
$count = $count+1;
$userPosCount = $userPos+$count;

return $userPosCount;

}
}

}

应该有return userPos+count。因为计数会增加表中的行数,而字符串 ranked position is 始终保持不变。这将给出结果。您可以根据您的要求更改返回字符串。 :)谢谢。

关于php - 根据连续最高的数字对分数进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com