desc的命令似乎失败了

时间:2014-03-02 01:02:41

标签: 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

1 个答案:

答案 0 :(得分:1)

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