MySQL查询:最近<查询结果

时间:2015-05-13 08:46:07

标签: php mysql

Table: cm_rank
|id|rankpoeng|tittel  |
-----------------------
|1 |        0 |Sivil  |
|2 |      322 |Wannabe|
|3 |     1450 |Hitman |

我正在尝试做什么:

$currentXp = 500;

$query = mysql_query("SELECT * FROM cm_rank WHERE $currentXp > rankpoeng LIMIT 1");

while ($rows = mysql_fetch_array($query)):
    $levelTitle = $rows['title'];
    echo $levelTitle;
endwhile;

$levelTitle变量应该只保留文本“Wannabe”,因为用户拥有的xp超出了它的要求,但不是下一个等级。

我如何构建这样的查询?

2 个答案:

答案 0 :(得分:1)

您应该按rankpoeng列排序以获取最高有效值。

$query = mysql_query("SELECT * FROM cm_rank WHERE $currentXp > rankpoeng ORDER BY rankpoeng DESC LIMIT 1");

答案 1 :(得分:1)

您必须订购结果:

"SELECT * FROM cm_rank WHERE $currentXp > rankpoeng order by rankpoeng desc LIMIT 1"

但是您不应该使用已弃用的mysql_* API。您应该将mysqli_*或PDO与准备好的声明一起使用。