php - 订购方式--;但也由另一个人订购?

标签 php html sql-order-by row

K,我有一个关于 PHP 的问题。 我正在尝试为具有关卡和 XP 的游戏取得高分。

我的问题很简单,我想按总等级排序,总等级最高的排在第一、第二、第三等位置。 但我也希望它按 xp 排序,这样如果他们的总等级相同,那么 xp 最高的人将首先显示,而不是随机显示。

到目前为止,这是我按级别排序的方法,但我不知道如何让它检查 xp。

$count = mysql_result(mysql_query("SELECT COUNT(*) FROM skillsoverall"),0) or     die(mysql_error());

        $from = (isset($_GET["from"]) && is_numeric($_GET["from"]) && $_GET["from"] < $count) ? $_GET["from"] : 0;

        $query = mysql_query ("SELECT * FROM skillsoverall ORDER BY lvl DESC limit $from, $ppls_page") or die(mysql_error());

        $i = $from;
        while($row = mysql_fetch_array($query)){
        $i++;
        if($i < $top_hiscore) {
if($i & 1) {
        echo '<tr class="row row1">
<td class="rankCol"><span>'.$i.'</span></td>
<td class="nameCol"><span><a href="'.$website.'/'.$pers.'?name='.$row["playerName"].'"     target="_self">'.BBCode($row["playerName"]).'</a></span></td>
<td class="lvlCol">'.dots($row["lvl"]).'</td>
<td class="xpCol">'.dots($row["xp"]).'</td>
</tr>   
';
} else {
        echo '<tr class="row row2">
<td class="rankCol"><span>'.$i.'</span></td>
<td class="nameCol"><span><a href="'.$website.'/'.$pers.'?name='.$row["playerName"].'"     target="_self">'.BBCode($row["playerName"]).'</a></span></td>
<td class="lvlCol">'.dots($row["lvl"]).'</td>
<td class="xpCol">'.dots($row["xp"]).'</td>
</tr>   
';

最佳答案

只需立即在您的查询中执行此操作即可:

SELECT * FROM skillsoverall ORDER BY lvl DESC, xp desc

SQL 将允许在 order by 子句中包含多个列。在这种情况下,它现在将返回按最高级别到最低级别排序的数据,并且如果有多个行具有相同级别,它将数据从最高到最低 XP 排序。它还将使用 limit 子句始终如一地工作。

关于php - 订购方式--;但也由另一个人订购?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526898/

相关文章:

html - 如何使用转发器在列中显示多条记录?

php - 执行多行更新时,除了复选框之外,如何访问其他表单元素值?

performance - int 与 float 的排序是否存在速度差异?

mysql - MySQL - 简单的订单表现不佳

php - jQuery post 请求中断 : Only half of post parameters arrive

php - 页面刷新时 MySQL 记录的改组

php - 如何确保文件路径位于给定的子目录中?

html - 如何使用 flex 以砌体样式正确显示我的 div?

MySQL 按连接中的字段值排序一次,然后按非连接列排序

php - 在选择菜单中选择一个选项后发布表单