如何在 PHP 中创建一个具有计时器的奖励系统,并在他们单击它并且 mysql 在表中插入一个随机值后将计时器设置为一定的时间?
我正在做一个项目,我希望用户像使用比特币水龙头一样积累游戏内货币。
一个简单的方法是使用一个同时包含金额和日期时间的表来跟踪用户的“货币”。用户的余额将仅显示日期时间早于当前时间的条目。这样,您可以立即插入条目,然后它仅在您需要时才生效。
rowid | user_id | amount | activetime |
-------------------------------------------------------
90000 | 1 | 0.01 | 12:13:12 01-16-15 |
90001 | 1 | 0.01 | 12:13:12 02-16-15 |
在插入时,您可以将活动时间设置为 DATE_ADD(NOW(), INTERVAL 2 HOUR) 这样它会在 2 小时后显示。
添加行的示例:
INSERT INTO transactions
(user_id, amount, activetime)
VALUES
(1, 0.01, DATE_ADD(NOW(), INTERVAL 2 HOUR))
获取用户当前余额的示例:
SELECT SUM(amount) AS balance FROM transactions WHERE activetime <= NOW()
此外,如果你想对用户进行速率限制,现在很容易检查他们是否已经点击了按钮,因为会有一个大于当前时间的条目。您可以像这样快速查询:
SELECT 1 FROM transactions WHERE activetime > NOW() LIMIT 1
然后在 php 中,如果 num_rows() 为 1,他们已经点击了按钮,正在等待付款。否则它将返回 0。
希望这会有所帮助。如果您对此主题有任何其他问题,或者您需要澄清一下,请告诉我。