在某段时间内启动php脚本

时间:2018-06-02 19:04:13

标签: php mysql mysqli

我'制作格斗游戏和玩家将被允许战斗直到"结束时间" (我的数据库中的行列)。比拥有更多伤害的玩家将获胜。因此,每当一行的结束时间用完时(即使没有人在现场),我想启动一个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);

1 个答案:

答案 0 :(得分:-1)

你应该考虑使用cron job。请查看这些example 1example 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

enter image description here

所以,例如,如果一个人想在每个月的第一天安排一个任务,那么它看起来像这样:

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

访问完整文章的链接,它解释道:

  1. 如果您想手动输入/编辑,可以使用cronjob的格式。
  2. 如何使用PHP和SSH2库作为用户进行身份验证,您将要编辑哪个crontab。
  3. 完整的PHP类,包含用于身份验证,编辑和删除crontab条目的所有必要方法。