使用MySQLi和PHP的排名系统(多重检查)
我设置了这个函数来获取用户等级使用MySQLi和PHP的排名系统(多重检查),php,mysql,sql,select,sql-order-by,Php,Mysql,Sql,Select,Sql Order By,我设置了这个函数来获取用户等级 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; }
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()是一个自动查询数据库的函数
这是返回false,我想要的是:
username level money exp id
john 3 2 213 4
bob 3 132 23 5
mark 4 3423 2 6
我希望它根据级别进行排序,但是如果两个用户(
john
和bob
)具有相同的级别,则使用exp,然后使用money,然后使用user ID。您可以在order by
子句中给出多个表达式:
SELECT * FROM members ORDER BY level DESC, exp DESC, money DESC, user_id DESC
查询(“按级别描述、金额描述、id描述从成员中选择*);该查询似乎不起作用。@PhilGibson您必须比“不起作用”更具体一点@PhilGibson,您在
order by
子句中漏掉了“exp DESC”。他提到query
函数在自己的查询中返回false。看来他还有别的问题。您的SQL查询很好,但是您的代码内部或其他地方出现了问题。