我'制作格斗游戏和玩家将被允许战斗直到"结束时间" (我的数据库中的行列)。比拥有更多伤害的玩家将获胜。因此,每当一行的结束时间用完时(即使没有人在现场),我想启动一个PHP脚本来更新该行。我在某处读过我应该使用MySQL触发器,但我不知道如何使用它。所以有人可以帮助我吗?
PHP脚本看起来像这样:
$query = "SELECT attacker, defender, attackerdmg, defenddmg FROM battle";
$results= mysqli_query($conn, $query);
while($Row = mysqli_fetch_assoc($results))
{
$attackerdmg= $Row['attackerdmg'];
$defenderdmg = $Row['defenderdmg'];
$attacker = $Row['attacker'];
$defender = $Row['defender'];
}
if($attackerdmg>$defenderdmg)
{
$query = "UPDATE fight SET winner= '$attacker'";
}else
{
$query = "UPDATE fight SET winner= '$defender'";
}
$Results= mysqli_query($conn, $query);
答案 0 :(得分:-1)
你应该考虑使用cron job。请查看这些example 1和example 2
这是迄今为止我发现的PHP代码的最佳解释:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
简而言之:
虽然安排一份新工作的语法乍一看似乎令人生畏,但一旦你将其分解,实际上相对简单易懂。一个cron作业将始终有五列,每列代表一个按时间顺序排列的运算符'然后是完整路径和执行命令:
[let probs [["lawful" lawful-industry]["unlawful" 1 - lawful-industry]]
每个时间顺序列都与任务的时间表具有特定的相关性。它们如下:
\* * * * * home/path/to/command/the_command.sh
所以,例如,如果一个人想在每个月的第一天安排一个任务,那么它看起来像这样:
Minutes represents the minutes of a given hour, 0-59 respectively.
Hours represents the hours of a given day, 0-23 respectively.
Days represents the days of a given month, 1-31 respectively.
Months represents the months of a given year, 1-12 respectively.
Day of the Week represents the day of the week, Sunday through Saturday, numerically, as 0-6 respectively.
如果我们想安排一个任务在每个星期六上午8:30运行,我们将按如下方式编写:
0 0 1 * * home/path/to/command/the_command.sh
还有许多运营商可用于进一步定制日程安排:
30 8 * * 6 home/path/to/command/the_command.sh
访问完整文章的链接,它解释道: