提交15天后,php更新帖子状态

时间:2013-02-01 14:34:08

标签: php mysql sql database date

我在mysql表中有一个postdate和status列。目前的帖子状态是= 1.所有我想在提交帖子15天后更改状态= 0。 任何人都可以提供帮助。

$todays = date('d-m-Y');
echo $todays;

mysql_query("UPDATE property SET status=1 WHERE expiredate > '".$todays."'");
//echo "record updated!";

3 个答案:

答案 0 :(得分:4)

您的约会对象。 MySQL日期格式为YYYY-MM-DD

$todays = date('d-m-Y');

应该是

$todays = date('Y-m-d');

另外一个更好的方法是使用纯SQL:

UPDATE property SET status=0 WHERE expiredate < CURRENT_DATE - INTERVAL 15 DAY

答案 1 :(得分:3)

这将是运行的cron脚本和MySQL语句的组合。

首先,cron条目可能每天运行一次(此示例是每天凌晨1点。)

* * * 1 0 /path/to/script.php

然后,您的PHP脚本将创建一个MySQL查询(不需要PHP变量) - 使用表'property'的假定名称

$db = new mysqli('host', 'user', 'password', 'database');
$db->query('update property set status=0 where status=1
            and expiredate < date_sub(now(), interval 15 day');

这将自动获取当前过期时间,减去15天并将其用于计算。此外,它会检查以确保状态为1 - 这样它就不会继续为已更新的表更新该字段。

答案 2 :(得分:2)

您必须定期运行查询以相应地设置状态。您可以在某个小时每天运行一个脚本,该脚本将针对数据库运行查询。如果您有Linux服务器,请查看cron作业,因为这正是您所需要的。