使用 MySQLi 和 PHP 的排名系统(多次检查)

Ranking system using MySQLi and PHP (Multiple checks)

我设置了这个函数来获取用户排名

function rank($user) {
    $q = query("SELECT * FROM members ORDER BY level DESC");
    $rank = 0;
    while($row = mysqli_fetch_array($q)) {
        $rank++;
        if($row['username'] == $user) {
            return $rank;
        }
    }
}

请注意:query()是一个自动查询数据库的函数。

这是返回错误,我想要的是:

username    level    money    exp    id
john        3        2        213    4
bob         3        132      23     5
mark        4        3423     2      6

我希望它根据级别排序,但如果两个用户(johnbob)具有相同的级别,则求助于 exp,然后是金钱,然后是用户 ID。

您可以在 order by 子句中给出多个表达式:

SELECT * FROM members ORDER BY level DESC, exp DESC, money DESC, user_id DESC