mmorpg の経験値ベースのランク システムを作成しています。2つのテーブルがあるとしましょう。
- table1: ユーザー名 - 式
- table2: ランク名 - 指数
各ランクに昇格するには、特定の量の経験値が必要です。ここで、ユーザー名を考えてみましょう: 私には 550 の経験値があり、table2 には次のものがあります。
- ランク1 - 200
- ランク2 - 600
私のexpはexp列の値ではありませんが、テーブル2のexpと比較してexpをチェックすることにより、まだランク1にいることをphp関数に伝えてもらいたいと思います。私は最善を尽くしました。
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) です。