我正在为我的 mmorpg 制作基于经验点的等级系统。假设我有 2 张桌子,
- 表 1:用户名 - exp
- 表 2:rankname - exp
每个等级都需要特定数量的经验才能晋升。现在假设用户名:我有 550 exp,在 table2 中我们有:
- 排名 1 - 200
- 排名2 - 600
现在我希望 php 函数通过检查我的 exp 与表 2 exp 来告诉我我仍然在 rank1,尽管我的 exp 不是 exp 列中的值。我尽力了,我得到了:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
boolean given in... line 6
这是我的代码:
function expToRank($userexp)
{
global $mysqli;
$sql="SELECT TOP 1 *
FROM table2
WHERE ABS(".$userexp."-exp) =
( SELECT MIN( ABS(".$userexp."-exp)) from table2 )";
$result=mysqli_query($mysqli,$sql);
$rankarray=mysqli_fetch_array($result,MYSQLI_ASSOC);
$rankname=$rankarray["rankname"];
return $rankname;
}
提示:2 exp 列是 BIGINT(60)。