2014-05-11 201 views
1

我有一個名爲'periodo'的列,其中的INTEGER值表示留下來實現某些工作的日子。 所以我需要每天減少1到'periodo'列,所以通知將是ie。 「你還有4天」,第二天「你還有3天」等等。 我知道這可以用MySQL中的事件完成,但事情是如果MySQL服務器例如在週末關閉2天,該領域不會被更新,並且當它再次打開時,該事件將不存在(多數民衆贊成我認爲,我沒有什麼經驗的事件) -MySQL-PHP - 每天更新列值

所以我想通了這一點,我有另一列的工作開始日期(fecha_entrega),再加上'periodo'列我可以使用DATEDIFF()每次index.php頁面以這種方式加載:

UPDATE compromisos SET periodo = periodo - SELECT DATEDIFF('CURDATE()','fecha_entrega'); 

但我認爲這是一種奇怪而低效的方式來做我想做的事。

幫助我選擇最有效的方式來做我想做的事,而服務器有時候可能會倒下!

+9

改爲存儲結束日期。而只需計算天數。比每天更新更好 – WizKid

+0

只需在PHP中完成! –

+0

而不是更新列,爲什麼不使用end_date列,並計算今天的日期和end_date之間的日期? –

回答

1

如何在MySQL中存儲結束日期並將其存儲在memcached中一段時間​​作爲MySQL服務器關閉時的備份,因爲您無法查詢數據庫。那麼當然要計算剩餘的時間。

+0

爲什麼我沒有想到這個?這很簡單,謝謝! – mlqmarkos12

+0

如果你發現這有幫助,然後分享愛和upvote :) – alex

+0

我想upvote,但我需要15聲望,以upvote和有人給我一個downvote在這個問題:(但我保證,當我得到15的聲譽我會給你upvote :) – mlqmarkos12

0

不是存儲工作的開始日期和剩餘時間/天,而是存儲截止日期。然後,您可以始終計算剩餘時間來完成工作(或者過期)。