2011-04-15 111 views
1

我有一个很大的问题:如何在指定时间后运行代码?

用户登录,会话打开。 之后,他点击了一个按钮(在表单中),该按钮的动作是“example.php”。 此使用example.php应该由1

增加一条记录在MySQL数据库如何写这个“使用example.php”? 请帮忙。

编辑: 对不起,我没有问什么我应该问。

主要问题:用户点击一个按钮

后,使用example.php脚本应在指定时间后执行,例如,一个600秒。

的另一个问题是,用户可以点击该按钮并注销,并尽管如此,使用example.php应600秒后执行。

编辑(18:48): 好的,我已阅读所有建议,但不知道如何使所有这些事情一起工作。

我由form.php的,与输入类型= “提交” 和行动= “使用example.php”。我想: 1.启动一个javascript定时器; 2.在一段时间后增加数据库中的一个值,在变量的前面指定。

请,如果可能的话,给我一个例子,如何做到这一点。

+1

你能解释一下你的问题标题的含义吗? – Eliasdx 2011-04-15 11:26:50

回答

1

example.php执行SQL:

UPDATE table SET field = field + 1; 

你需要更多的信息来做到这一点?

编辑:

我认为有像工作机制,没有其他办法。当用户调用example.php时,可以使用当前时间戳+600秒向数据库添加新作业。

并行应该有一些运行工作执行将收集从数据库中具有时间戳设置为timestamp <= NOW()所有作业。

如果将一些记录,调用指定的代码,并删除/标记为已完成的作业。

+0

对不起,我没有问过我应该问什么。 – Rubid 2011-04-15 11:26:01

+0

然后编辑并澄清您的问题,以便我可以帮助您,countryman;) – hsz 2011-04-15 11:30:05

+1

感谢hsz,感谢您的回复我明白了这个问题。但即使如此,我不知道如何编写代码:( – Rubid 2011-04-15 16:49:40

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 
?> 
+0

当你关闭一个实现了'sleep'的站点时,它将停止执行该脚本 – hsz 2011-04-15 11:35:48

+0

'ignore_user_abort()'和'session_write_close()'(如果OP使用这种会话)是OP应该查看的其他函数 – Eliasdx 2011-04-15 11:36:31

+0

正确,但他只是要求延迟执行代码 – Thariama 2011-04-15 11:50:22

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 示例。php

0

有几种方法可以去做这件事...... 如上所述,有睡眠方法。 你可以有一份工作 - 即把一些东西添加到工作列表中,并且每隔一段时间检查一次cronjob以查看它是否到期。 您可以使用JavaScript计时器在x秒后执行。