2016-02-09 43 views
0

我有一個新聞部分的PHP網站和帖子存儲在一個SQL數據庫。每篇文章都有一個到期日期(即2016-03-01)和一個設置爲true或false的活動列。 Active = true顯示帖子。在特定日期「幕後」更新sql post?

我希望活動列在過期日期從true更改爲false,以便帖子不再顯示在頁面上。我知道如何使用基本的PHP做到這一點,但需要網站的輸入,即按下按鈕或加載頁面,以便更新。

數據庫(或php)有辦法在後臺執行此操作並更新該特定日期的帖子嗎?

+3

你正在尋找的是一個cronjob - 一個重複調用這個任務的腳本。 –

+0

https://help.ubuntu.com/community/CronHowto雖然這是針對Ubuntu的,但對於其他所有發行版本來說基本相同。 –

+1

您正在嘗試解決不需要解決的任務。您不應該嘗試更改該標誌,因爲這意味着處理冗餘信息。相反,您應該修改提取要顯示的文章的查詢,以便它同時考慮:標記本身_and_日期是否已過期。 – arkascha

回答

-1

@YUNOWORK的提示工作正常。我的網站酒店沒有安裝crontab,但我現在正在測試一個同樣的事情的Web服務。工作真的很棒!

我現在在使用www.cronless.com。它是免費的,做我想要的。

0

我想你正在使用MySQL服務器。如果是這種情況,您可以使用events。您可以定義事件來執行查詢每隔一小時,分鐘等

CREATE EVENT remove_expired_posts 
    ON SCHEDULE 
    EVERY 1 DAY 
    DO 
    UPDATE posts SET active = 0 WHERE expiration_date <= NOW(); 

更普遍,雖然,你可以選擇要顯示的職位時,爲了避免這一點,並添加一個附加條件:

SELECT * FROM posts WHERE active = 1 AND expiration_date > NOW();