我有一个大问题:
用户登录,会话打开。 之后,他点击一个按钮(在表单中),该动作是“example.php”。 此example.php应该将MySQL数据库中的一条记录增加1。
如何写这个“example.php”? 请帮忙。
编辑: 对不起,我没有问我应该问什么。
主要问题:
用户单击按钮后,example.php脚本应在指定时间后执行,例如600秒。
另一个问题是用户可以单击按钮并注销,尽管如此,example.php应该在600秒后执行。
编辑(18:48): 好的,我已经阅读了你的所有建议,但是不知道如何让所有这些东西一起工作。
我创建了一个form.php,输入类型=“submit”和action =“example.php”。 我想要: 1.启动一个javascript计时器; 2.在变量之前指定的时间之后增加数据库中的值。
如果有可能,请举个例子,告诉我如何做。
答案 0 :(得分:2)
在example.php
执行SQL:
UPDATE table SET field = field + 1;
您需要更多信息吗?
编辑:
我认为没有像工作机制那样的其他方式。当用户调用example.php
时,您将使用当前时间戳+ 600秒向数据库添加新作业。
并行应该运行一些作业执行程序,它将从数据库收集时间戳设置为timestamp <= NOW()
的所有作业。
如果是某些记录,请调用指定的代码段并删除/标记作业。
答案 1 :(得分:0)
您可以使用sleep
延迟执行代码示例:
<?php
echo 'Script Start: '.date('h:i:s') . '<br>';
sleep(5); // delay in seconds (here 5)
echo 'Script Ende: '.date('h:i:s') . '<br>';
?>
我不知道你想要做的事情是否合理,但你的exampl.php
看起来像是:
<?php
sleep(600); // delay in seconds
// the code to be executed delayed here
?>
答案 2 :(得分:0)
<?php
if( isset($_POST['submit_button']) ) {
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$sql = 'UPDATE table SET counter_column = counter_column + 1'; // WHERE table_name_id =' . intval($id);
mysql_query($sql, $link);
}
?>
这个 example.php 只会在点击submit_button时更新值,而不是只输入URL example.php
答案 3 :(得分:0)
你有几种方法可以做到这一点...... 如上所述,有睡眠方法。 您可以找到一份工作 - 即将某些内容添加到工作列表中并让cronjob经常检查它以查看它是否到期。 您可以使用javascript计时器在x秒后执行。