你有SQL或PHP的定时器吗?

你有SQL或PHP的定时器吗?,php,html,sql,Php,Html,Sql,所以我找到了一些选择,但它们并不合适。我目前正在制作一个使用SQL server的PHP浏览器游戏 我正在试图找出一种方法,当按下按钮时,300秒后一个SQL单元格应该更新,而在300秒期间,它会显示在屏幕上。不必倒计时,即使是剩下的 找出一种方法来完成这300秒,并在刷新时显示出来,这是我遇到的问题。不,它实际上并不存在,不是在“标准”代码中。不过,您可以通过其他方式进行: 单击“更新数据库”,将egtimerReady设置为NOW()+300秒 在刷新/重新加载/cron/时,无论您检查是否

所以我找到了一些选择,但它们并不合适。我目前正在制作一个使用SQL server的PHP浏览器游戏

我正在试图找出一种方法,当按下按钮时,300秒后一个SQL单元格应该更新,而在300秒期间,它会显示在屏幕上。不必倒计时,即使是剩下的


找出一种方法来完成这300秒,并在刷新时显示出来,这是我遇到的问题。

不,它实际上并不存在,不是在“标准”代码中。不过,您可以通过其他方式进行:

单击“更新数据库”,将eg
timerReady
设置为NOW()+300秒

在刷新/重新加载/cron/时,无论您检查是否
timerReady
,您都知道300秒已经过去了。否则,
timerReady-NOW()
为剩余秒数

当按下按钮时,让javascript等待300秒(我建议使用计时器/指示器),然后重新加载。当用户同时重新加载时,您可以使用
timerReady-NOW()
技巧来决定用户必须等待多长时间


您可以仅使用Javascript执行此操作,但如果您不将其存储在数据库中,当用户刷新时,他们必须重新开始,因为您无法验证任何内容。

如果用户关闭应用程序的浏览器选项卡时,您可以避免可能出现的潜在问题,您最好的选择是使用JavaScript代码段:

  • 当用户单击按钮时,会出现如下JavaScript超时

    // 1. prepare timeout
    setTimeout(on_timeout_fn, 300000);
    
    这段代码的作用是,在300秒后,它将调用
    on\u timeout\u fn
    函数

  • 当时间到时,将执行超时时的函数
    on\u fn
    。您应该将其定义为以下内容:

    let on_timeout_fn = function() {
        // 2. run an ajax call to execute a PHP script that will update the database
        // if you're using something like JQuery, it should be as easy as:
        $.post("update_db.php", "data_to_send", function() {
            // 3. when ajax call ends, make sure the button dissapears
            $("#yourButtonID").toggle();
        }, "text");
    }
    

  • 您必须使用JavaScript和PHP来实现这一点。您还可以使用JQuery来实现此功能。在Javascript中,您可以通过点击它的查询选择器抓住按钮,无论它是类还是id,然后您可以设置一个计时器,在300秒之前它不会执行代码,然后它运行代码,通过AJAX将值发送到后端,获取您喜欢的任何内容。然后继续使用PHP和MYSQL更新数据。

    也许触发器可以帮助您解决这个问题:您通常会使用Javascript和AJAX执行类似的操作。Javascript确实有。