我正在尝试为我正在开发的游戏编写脚本,该脚本每天只奖励用户点击特定链接一次。
我认为最好的方法是在用户历史记录的奖励表中创建一个字段,记录他们获得奖励的用户名和时间。
因此每次单击链接时,这些值都需要与过去 24 小时内的所有其他值一起存储在“历史”字段中:
$username = GET['username'];
$time = time();
在一个字段(多维数组)中存储多个值的最佳方法是什么?我将如何存储它们并在以后检索它们?
在我弄清楚如何从数组中检索值之后,我想使用 preg_match() 来查找用户名的重复项。如果返回 true,则检查 time();,如果超过 24 小时,则更新 time(); to current and reward, else if it is not older than 24 hours no new reward, if false, then they get a reward.
有什么想法吗?
编辑:好的,那么如果将值放入一个字段不是最好的方法,那什么才是?每天都有很多奖励(100 个),而且它们很快就会过期,所以在 user_info 表中为每个奖励创建一个字段肯定不是最好的方法吧?这意味着每次添加新奖励时,都必须将一个新字段插入到 user_info 表中......然后当奖励到期时,所有这些列都必须删除。这是你们的建议吗?
最佳答案
为什么所有这些业务都与多维数组和正则表达式有关?你有 MySQL,使用它!
每个奖励存储一行
| user_id | last_rewarded_at |
| 42 | 2011-01-11 |
通过这种方式,您可以轻松添加新奖励、检查用户是否在特定日期获得奖励等。
关于PHP/MySQL 脚本不会让用户在很多时间内多次访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818600/