2010-06-14 88 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