我想在PHP中编写一个简单的游戏化系统。像if count> = 5之类的东西然后给这个人一个奖励。我假设一旦满足每个动作,我就会将编号的代码输入到数据库中。然后我可以有一个成就框拉出每个代码并显示匹配的徽章。
看起来很简单 - 但我有一个问题。在获得徽章后,我该如何提醒一个人?任何人都有任何想法为每个徽章分配价值,并可能指向其他行动?我是否只需将所有点作为单个数字输入到数组中并将它们全部添加到sep sql调用中以显示总点数?
答案 0 :(得分:2)
我希望我明白你的意思。我认为最简单的方法是实施一个“级别”奖励系统。只需将总点数保存为用户字段(用户表中名为“points”的列),如果用户有资格获得新奖励,则在每次增量后检查。
如果您想为用户提供多种类型的奖励,而不是按特定顺序,您需要根据此结构开发一个系统:
然后,您只需执行一个跨表sql选择,通过简单地执行基本操作来显示用户或用户类的点:
SUM(point awards for the user) - SUM(points for awards received by user).
自从我编写了这样一个SQL select语句以来已经有一段时间了,但它并不难,完全可以完成。这将是类似的事情:
SELECT a.userId,(SUM(a.points) - SUM(b.points_spent)) as 'currentPoints' FROM Awards a, Spendings b WHERE a.userId = b.userID
此声明尚未经过测试,可能完全错误,但这是我现在记得的。该声明应返回每个用户的ID和相应的支出点。如果您提供数据库设计,我可以提供完整而正确的选择声明。
希望这有帮助,干杯!