PHP由ASC订购不适用于十进制类型

时间:2013-11-06 13:21:51

标签: php mysql decimal

有关于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,仍然拼命想学:/

1 个答案:

答案 0 :(得分:3)

你可能在“反射”栏中排名为0

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

退出周期