Php 在特定日期时间后自动设置记录状态

Php 在特定日期时间后自动设置记录状态,php,mysql,Php,Mysql,我有一个表格,用户填写后发布他们的招聘广告,他们输入的字段之一是保持工作“开放”的天数 我希望能够在作业输入的天数过后自动将作业状态更改为“关闭” 作业表已经设置了状态和到期,我只需要知道如何自动将状态从“打开”更改为“关闭” 我对MySQL和需要运行的查询知之甚少 建议您不要将状态作为数据库中的字段保存,而是从业务或表示层中的到期日期派生该状态。这可以在SQL代码或客户端代码PHP中完成 一些伪代码: INSERT INTO JobAd (Description, ExpiryDate) VA

我有一个表格,用户填写后发布他们的招聘广告,他们输入的字段之一是保持工作“开放”的天数

我希望能够在作业输入的天数过后自动将作业状态更改为“关闭”

作业表已经设置了状态和到期,我只需要知道如何自动将状态从“打开”更改为“关闭”


我对MySQL和需要运行的查询知之甚少

建议您不要将状态作为数据库中的字段保存,而是从业务或表示层中的到期日期派生该状态。这可以在SQL代码或客户端代码PHP中完成

一些伪代码:

INSERT INTO JobAd (Description, ExpiryDate)
VALUES (@Description, @Today + DaysToLive)

...

SELECT *
       , CASE WHEN ExpiryDate<@today
       THEN 'Expired'
       ELSE 'Good to go'
       END AS JobStatus
FROM JobAd  ORDER BY JobStatus, ExpiryDate
当您取出这些作业时,使用PHP将状态写回用户,部分基于ExpiryDate。同样,这可以在SQL或PHP中完成


派生状态意味着您不必创建维护流程/任务来更新数据库中的属性。

建议您不要将状态保留为数据库中的一个字段,而是从业务层或表示层中的到期日期派生该状态。这可以在SQL代码或客户端代码PHP中完成

一些伪代码:

INSERT INTO JobAd (Description, ExpiryDate)
VALUES (@Description, @Today + DaysToLive)

...

SELECT *
       , CASE WHEN ExpiryDate<@today
       THEN 'Expired'
       ELSE 'Good to go'
       END AS JobStatus
FROM JobAd  ORDER BY JobStatus, ExpiryDate
当您取出这些作业时,使用PHP将状态写回用户,部分基于ExpiryDate。同样,这可以在SQL或PHP中完成

派生状态意味着您不必创建维护过程/任务来更新数据库中的属性