php - 按 desc 排序似乎失败

标签 php mysql sql

所以我拥有一个在线游戏,每个用户都有一个教练级别,因此我们可以将他们从高到低排名。在数据库中,存储的训练师级别只有一个数字,例如 1 或 4 或 5。然后我们将其除以 0.001 以获得真实的训练师级别。

这是我到目前为止编码的内容。

$pageLimit=PAGE_PER_NO*$id;
$query="SELECT * FROM users ORDER BY trainer_level DESC limit $pageLimit,".PAGE_PER_NO;
$res=mysql_query($query);
$count=mysql_num_rows($res);
$HTML='';
if($count > 0){


    echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>"; 
echo "<table width='100%' border='1' table class='gridtable' >


<tr>
<th>Username</th>
<th>Trainer Level</th>

</tr>";

        while($row = mysql_fetch_array($res))
        {
        $i++;

        echo '<td><img src="http://domainame.com/'.$row['avatar'].'" border=0>' ;
        echo "<a href='membersprofile.php?nicky=".$row['username']." '>" . $row['username'] . "</a></td>";


    echo "<td>";
    echo "Wins:     ";
    $trainer_level= mysql_real_escape_string($row['trainer_level']);
$trainer_level2 = strip_tags($trainer_level);

$b = '0.001';

$total = ($trainer_level2 * $b)  ;
      echo $total ;
      "</td>";

  echo "</tr>";

        }
         echo "</table>"; 


}else{
  $HTML='No Data Found';
}
echo $HTML;

这是我得到的屏幕截图 http://gyazo.com/994d215f0621371c62d9d1c087f77b1f.png

您是否可以看到 0.008 高于胜利:0.075 但 0.075 大于 0.008

最佳答案

我认为这是因为您的 trainer_level 列不是数字数据类型。您需要在排序之前将其转换为数字。

关于php - 按 desc 排序似乎失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122564/

相关文章:

php - 如何从 sql 数据库中以更直观的方式呈现日期和时间

mysql - 通过表进行 SQL 替换

php - 连接时如何确定 2 列的日期

sql - 哪里可以学SQL出数据的方式

php - Javascript 变量 - 未定义

PHP、正则表达式和多级大括号

php - PHP 中 mysql 查询字符串的奇怪行为

php - 组合数组和 MySQL 结果

sql - SQL TRIM() 函数中的奇怪错误

php - 使用 PHP 将 SQL 表导出为 CSV 格式