-1

我有一个不完整的代码不起作用。我为每个用户准备了一个能量棒。我的表“Users”(usuarios)有“Energy”(energia)和“Energymax”(energiamax)列。

使用此代码,它可以工作,但我想设置一个计时器,例如:1 分钟内有 1 个,它运行这个。

<?php
    mysql_query("UPDATE usuarios 
                 SET energia=energia+1 
                 WHERE energia<>energiamax AND tipo='player'");
?>

我的逻辑是:第一分钟它增加“+1”并重新开始倒计时。1分钟后,再次增加“+1”。

我应该如何创建这样的计时器?

谢谢 ;)

4

2 回答 2

1

您可以使用MySQL 事件

不要忘记拥有 MySQL 5.1.6 及更高版本并使用

SET GLOBAL event_scheduler = ON;

一分钟定时器使用

DROP EVENT IF EXISTS myevent;

CREATE EVENT myevent
ON SCHEDULE EVERY 1 MINUTE
DO UPDATE usuarios SET energia=energia+1 
    WHERE energia<>energiamax AND tipo='player';
于 2012-10-02T10:36:33.587 回答
0

最好不要使用 'energia' 列,并在表中 'energia' 为零时存储时间戳,而不是设置计时器。而在选择时,只需计算自开始以来的秒数 - 这就是“能量”的值。因此,您不必每分钟都调用一次 SQL 查询。

于 2012-10-02T10:24:52.620 回答