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超出了它的要求,但不是下一个等级。
我如何构建这样的查询?
答案 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与准备好的声明一起使用。