所以我拥有一个在线游戏,每个用户都有一个教练级别,因此我们可以将他们从高到低排名。在数据库中,存储的训练师级别只有一个数字,例如 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/