2016-10-30 37 views
0

我在本地MAMP服務器上安裝了phpmyadmin,包含三張表,用戶,預訂和客房。在表格預訂中,我有類似booking的預訂從booking到表示預訂時間的列。在房間的桌子上,我有像isBooked這樣的東西,大多數時間都取決於時間。每天在數據庫上自動更新

我想在我的phpmyadmin中做一些事情,每天數據庫都會更新自己,並檢查房間是否被佔用,如果bookingTo日期將在當前數據庫的一天之前自動更改isBooked從true到假。

我的目標是不是準備好劇本得到的,但只要它是我的學校項目:)

回答

1

培訓網站可能可以在做到這一點的方式做它或任何有用的鏈接數據庫直接,我沒有意識到這樣做的任何方法,但我相信這是可能的(可能不是在MySQL中,但在某些數據庫引擎)。但是,你不能僅僅在一天的開始(或者每當)執行一個簡單的PHP運行的UPDATE查詢,或者甚至只是在特定的時間(結賬半小時後)運行一個cron腳本,或者類似的東西),並讓它檢查數據庫中的「結束日期」,如果它在當前日期/時間之前,更改「佔用」狀態?

2

你不能這樣想,用phpmyadmin來想。如果你的版本支持它,你可以試試mysql調度器。

類似的東西應該工作...

CREATE EVENT myevent 
    ON SCHEDULE EVERY 1 DAY 
    DO 
     CALL check_book_status(); 

請不要忘記創建check_book_status功能更新,你需要現場。

而且,這裏更多信息...

http://dev.mysql.com/doc/refman/5.7/en/create-event.html

1

你可以把它無需更新狀態。當您顯示此信息時,只需計算狀態即可:

SELECT 
     IF(NOW() > bookingFrom AND NOW() < bookingTo, 1, 0) AS isBooked 
     /* other fields */ 
    FROM booking 
    ...