PHP查询LIMIT DESC无法正常工作

时间:2015-01-21 12:31:06

标签: php mysql sql-limit

我正在尝试获得玩我的游戏的玩家的高分(前10名)列表。 除了一件事,一切都有效,列表不对。 前10个人是正确的,但是当我转到第2页时,列表没有进一步完成。

Page 1

Page 2

变量说明

$gamemode = "Endless"
$filter = "Score"
$startNum = Page1 = 0, Page2 = 10
$maxlimit = 10

查询:

$query = "SELECT ID, Gamemode, Name, Score, ContainersSaved, TimePlayed, Date, ScorePerMinute
FROM $dbName . `highscore`
WHERE Gamemode='$gamemode'
ORDER by `$filter` DESC
LIMIT $startNum, $maxlimit";

有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果您的分数字段是varchar,请尝试:(或将其更改为INT)

$order=$filter;
if($filter=='Score') {
    $order="ABS($filter);
}
$query = "SELECT ID,Gamemode,Name,Score,ContainersSaved,TimePlayed,Date,ScorePerMinute FROM $dbName . `highscore` WHERE Gamemode='$gamemode' ORDER by $order DESC LIMIT $startNum, $maxlimit";

答案 1 :(得分:0)

我修好了,我忘了改变分数'从varchar到INT的字段,所以它试图在字符串而不是INT上进行Descend。

感谢Imaginaerum给我的提示:)