XP及PHP MYSQL 练级系统

2024-05-21

我已经查看了所有提出的问题和答案,但我似乎找不到最适合我的答案。我想做的是开发一个系统,当用户达到一定的 XP 限制时,系统会进入下一个级别。它显示了下一个 XP 之前需要多少 XP。

So

lvl1 = 0 => lvl2 = 256 => lvl3 = 785 => lvl4 = 1656 => lvl5 = 2654

我将如何去做,所以如果 XP 达到一定数量,则显示该数量以及下一个级别需要多少 XP。


你可以尝试这样的事情:

We have users_xp我们数据库中的表,其中user_xp_id(主键-自动递增),user_id and user_xp_amount(默认值:0)字段。当我们想要更新用户 XP 数量时,我们应该这样做:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

function update_user_xp($user_id, $amount, $mysqli) {
    $mysqli->query("UPDATE users_xp 
                    SET user_xp_amount=user_xp_amount+" . $amount . " 
                    WHERE user_id='$user_id'");
}

// we call this function like:
update_user_xp(4, 10, $mysqli); // user_id: 4, update with 10 points

当我们想要获取实际的用户经验值时,我们可以从数据库表中获取它

function get_user_xp($user_id, $mysqli) {
    $sql = $mysqli->query("SELECT user_xp_amount 
                           FROM users_xp 
                           WHERE user_id='$user_id'");
   $row = $sql->fetch_assoc();
   return $row['user_xp_amount'];

}

$xp = array('lvl1' => 0, 'lvl2' => 256, 'lvl3' => 785, 'lvl4' => 1656, 'lvl5' => 2654);

$my_xp = get_user_xp(4, $mysqli); // where 4 is my user id

for($i = 0; $i < count($xp); $i++) {
   if($my_xp == $xp[$i]) {
       echo 'I\'m on level ', ($i+1);
       break;
   }
   else {
       if(isset($xp[$i+1])) {
           if($my_xp > $xp[$i] && $my_xp <= $xp[$i + 1]) {
               echo 'My next level is ', ($i+2), ' and I need ', $xp[$i+1], ' more points for achieving it!';
               break;
            } else {
               echo 'My next level is ', ($i+1), ' and I need ', $xp[$i], ' more points for achieving it!';
               break;
            }
        }
    }
}

稍后编辑:

CREATE TABLE `my_db_name`.`users_xp` (
`user_xp_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user_id` BIGINT NOT NULL ,
`user_xp_amount` BIGINT NOT NULL DEFAULT '0'
) ENGINE = InnoDB;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XP及PHP MYSQL 练级系统 的相关文章

随机推荐

  • System.Web.Caching.Cache 在模型中抛出 null 异常

    也许这个问题应该很简单 但事实并非如此 我读过了在 ASP NET 中使用 System Web Caching Cache 类时出现问题 https stackoverflow com questions 531014 problem u
  • 如何将字符串转换为任意类型

    我想将字符串转换为泛型类型 我有这个 string inputValue myTxtBox Text PropertyInfo propInfo typeof MyClass GetProperty myPropertyName Type
  • 我可以指定泛型是值类型吗?

    我知道我们基本上可以通过使用指定我们的泛型是任何引用类型AnyObject class Foo
  • JavaScript 中是否存在整数类型?

    我刚刚开始学习 Javascript 我立即对 Mozilla 中看似矛盾的陈述感到困惑JavaScript 重新介绍 JS 教程 https developer mozilla org en US docs Web JavaScript
  • pandas - 枢轴 ||创建比率/百分比的自定义列

    import numpy as np import pandas as pd data experiment name exp1 exp1 exp1 exp1 exp1 exp1 variant A B A B A B sessions w
  • 如何使用 GNU Octave 中的范围设置 x 或 y 轴的控制?

    x 的长度 1000 y 的长度 1000 plot x y xlabel p ylabel Q p title Custom plot set gca xtick 0 00000 0 20000 0 40000 0 60000 0 800
  • 如何使按钮在表格单元格内居中

    我试图通过以下方式将按钮置于表格内的中心 text align center 然而 它似乎对我不起作用 注 我用过Display table cell结合Vertical align middle将按钮的文本居中 正如您所看到的 第一个按钮
  • Spring data JPA 和 Geometry 类型

    我正在开发一个可以在 MySql 和 MS SQL 上运行的应用程序 我有一个空间 几何 类型的字段 通过使用 Column columnDefinition geometry private Point geometry 点是org sp
  • 从 python 执行时如何打印和捕获 7zip 的%进度标记?

    当 7zip 从命令行运行时 它将使用一系列 符号打印进度条 我想在 Python 中执行 7zip 时捕获并打印这个进度条 我该怎么做呢 我当前使用的Python代码 from subprocess import Popen PIPE p
  • 无法以角度正确导入 fireStore 模块

    我在运行 Angular 项目时收到此错误 这可能意味着库 angular fire firestore 声明 AngularFirestore 尚未被 ngcc 正确处理 或者 与 Angular Ivy 不兼容 检查是否有较新的版本 由
  • 使用 datetime 与 Django 中的日期进行比较

    我在 Django 中有一个关于如何比较日期来解决一些解决方案的问题 例如 我的 models py 中有一个日期字段 如下所示 class Invoice models Model payment date models DateTime
  • 计算字符串向量中连续数字的函数

    我想创建一个函数 它接受至少 1 个元素的字符串对象并包含数字 2 到 5 并确定是否存在至少 N 长度的连续数字 其中 N 是实际数字值 如果是 则返回字符串 true 否则返回字符串 false 例如 Input 555123 Outp
  • h2 设置背景颜色和下划线

    我需要帮助解决这个 CSS 问题 我想要风格 h2 元素的背景颜色仅适用于文本 并且还有边框底部 这是预览 我可以自己做这件事 这并不难 但问题是我无法添加额外的元素 比如 span 标签 内 h2 标签 所以我正在寻找一种纯CSS方式来实
  • 识别包含字符串的行的最快方法[重复]

    这个问题在这里已经有答案了 我有一个字符串数据框 尺寸为 30 列 x 500 万行 我想识别包含任何预定义字符串列表的行 有没有比下面我的 apply any 方法更快的方法 这是一个可重现的示例 请注意 此示例中的字符串是随机数 但在我
  • html 中的输入字段可以有多少个字符?

    html 输入字段中允许的 自然 字符数是多少 多谢 根据评论添加 我不需要通过邮寄或获取将其发送到服务器 我将通过 JS 解析字符串 因此 如果输入是无限的 就像 sAc 所说 这会给我带来两个进一步的问题 JS 最长的 String 可
  • MongoDB 日志文件和 oplog 有什么不同?

    我最近开始使用 Mongodb 并尝试探索副本集和崩溃恢复 我读过它就像日志文件写入头重做日志文件一样 oplog 文件是每个写入活动都将被写入的文件 这两个有什么区别 我们在主站和从站上都有操作日志吗 请发布任何可以阐明该领域的网络链接
  • Drawable 已属于另一个所有者,但未公开恒定状态

    错误 无效的可绘制对象添加到 LayerDrawable 中 Drawable 已经属于另一个所有者 但不公开恒定状态 我今天突然注意到这个错误 我不确定是否是因为我刚刚将测试设备更新到Android 8 0 错误消息清楚地表明在浮动操作按
  • spring-security-kerberos 无法读取密钥表?

    我正在努力追随本教程适用于 spring security kerberos http blog springsource com 2009 09 28 spring security kerberos 我有一个密钥表 其中有一个主体 kt
  • 如何在 Vagrant 中使用 VirtualBox 创建具有两个 CPU 的虚拟机?

    在 Windows 7 64 位上尝试启动 VM Ubuntu 32 位 尽管添加了以下内容 但我仍无法让我的虚拟机显示两个核心modify vm我的 Vagrantfile 中的命令 我的 Vagrant 版本是 1 2 2 mode r
  • XP及PHP MYSQL 练级系统

    我已经查看了所有提出的问题和答案 但我似乎找不到最适合我的答案 我想做的是开发一个系统 当用户达到一定的 XP 限制时 系统会进入下一个级别 它显示了下一个 XP 之前需要多少 XP So lvl1 0 gt lvl2 256 gt lvl