-2

有一个关于 ORDER 的快速问题。我有一个分数列表,我使用 php 在高分表中显示。我需要将最小的十进制数字显示在第一位,但是当我尝试使用 ASC 命令时,没有结果显示。但是,如果我使用 DESC,结果会显示,但与我需要的顺序相反(最后显示最小的小数)。

这是显示分数的“工作”代码,但顺序错误。

$query = mysql_query("select reflex,playerID from users_stats order by reflex DESC limit 10")or die(mysql_error());

$ranking = 0;
    while ($row = mysql_fetch_array($query)) {
         if ($row[reflex] <= 0) break;
            $ranking = $ranking + 1;  
            $rankingdisplay = doRankPosition($ranking);  

            print "<tr><td><b>$rankingdisplay</b></td><td>$row[playerID]</td><td>$row[reflex]</td></tr>";
        if ($ranking >= 10) break;       
    }

这是不显示任何内容的代码(不返回任何结果)。

$query = mysql_query("select reflex,playerID from users_stats order by reflex ASC limit 10")or die(mysql_error());

$ranking = 0;
    while ($row = mysql_fetch_array($query)) {
         if ($row[reflex] <= 0) break;
            $ranking = $ranking + 1;  
            $rankingdisplay = doRankPosition($ranking);  

            print "<tr><td><b>$rankingdisplay</b></td><td>$row[playerID]</td><td>$row[reflex]</td></tr>";
        if ($ranking >= 10) break;       
    }

我也试过这个(默认);

$query = mysql_query("select reflex,playerID from users_stats limit 10")or die(mysql_error());

$ranking = 0;
    while ($row = mysql_fetch_array($query)) {
         if ($row[reflex] <= 0) break;
            $ranking = $ranking + 1;  
            $rankingdisplay = doRankPosition($ranking);  

            print "<tr><td><b>$rankingdisplay</b></td><td>$row[playerID]</td><td>$row[reflex]</td></tr>";
        if ($ranking >= 10) break;       
    }

再一次,没有结果显示....

反射分数使用十进制(4,3)默认无存储在 MySQL 数据库中。谁能指出我正确的方向?我试图用谷歌搜索它,但似乎找不到任何特定于我需要的东西。我认为这与十进制有关?

提前致谢。

*已编辑 - 我非常感谢任何答案/建议,但是我对 php 非常陌生,并且仍在拼命学习:/

4

1 回答 1

3

可能您在“反射”列和行中有 0

 if ($row[reflex] <= 0) break; 

退出循环

于 2013-11-06T13:31:42.260 回答