PHP/MySQL 脚本不会让用户在很多时间内多次访问

标签 php mysql

我正在尝试为我正在开发的游戏编写脚本,该脚本每天只奖励用户点击特定链接一次。

我认为最好的方法是在用户历史记录的奖励表中创建一个字段,记录他们获得奖励的用户名和时间。

因此每次单击链接时,这些值都需要与过去 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/

相关文章:

PHPExcel - 在文档创建期间获取当前页面

PHP PHPSESSID 利用困惑

java - 关闭池中的 JDBC 连接

mysql - 多对多关系查询

c++ - 手动读取 Mysql 数据库文件

php - 在Modal(Bootstrap)中打印信息

javascript - 从 PHP 脚本获取音频文件时更改 JavaScript 音频对象的当前时间

php - 向时间戳添加天数

mysql - 如何在NodeJS mysql中模拟SQL注入(inject)

php - PHP级别系统?