2010-06-14 73 views
1

我一直在这里搜索SO和谷歌搜索,但是我找不到符合我的描述的任何东西。30秒后,更新MYSQL数据库

我想要做的是更新数据库,如果页面在30秒后没有刷新。如果用户在最近30秒内没有访问过该页面(我可以这样做),我想通过电子邮件向某人发送{不同用户提交的}表单内容(我可以这么做)。

我试图做的是让页面每30秒刷新一次,所以我想如果我在31秒后做了类似的事情,编辑数据库(所以如果刷新的页面没有刷新,数据库编辑将运行)。

对不起,如果这听起来很复杂,可能有更好的方法来做到这一点,但我不知道如何。

大局观我试图做一个“值班”之类的事情,因此,如果人没有积极寻找页面,他们将获得与任何形式的内容是通过电子邮件发送。该页面将包含所有输入表单结果的表格。

+0

听起来很可怕... – Artefacto 2010-06-14 10:24:41

回答

4

您可以通过每次用户刷新页面时创建一个带有时间戳的记录来更新数据库。然后,如果时间戳超过30秒,则可以让PHP工作人员在数据库中正常显示并启动电子邮件。

+0

啊是的,这是一个更简单的方法去实现它。 – Sam 2010-06-14 10:28:47

+0

谢谢。我现在已经有了约会。 \t \t \t \t \t date(“m/d/Y h:i:s a”,time()); 如何添加30秒? – Sam 2010-06-14 10:57:14

+0

我想我会在Mysql中做所有的日期时间,这会给你更多的一致性:在刷新时,你会做一些类似“update last_refresh set timestamp = NOW()where user = ...”,并检查你是否需要发送一个电子邮件你做“从last_refresh选择用户where DATEDIFF(NOW(),timestamp)>(30 /(3600 * 24))”(未测试,我更喜欢Postgresql人:)) – 2010-06-14 11:03:53

1

我不能提供作业的服务器端部分的PHP解决方案。但基本上你需要设置JavaScript计时器(例如jQuery超时),并在30秒后做ajax调用,它将在服务器上执行你想要的任务(将某些内容保存到数据库,发送电子邮件等)。

我希望我明白你的观点,我的建议会以某种方式帮助你。

0

我建议使用JavaScript这样的:
window.setTimeout("location.reload(true);", 3000);

这是当然的,如果你迫切需要重新加载,但用户显然会生气,你重装了他的窗口。

+0

Youu可以做到这一点,而不需要实现页面 – Lizard 2010-06-14 10:27:23