我正在创建一个在线告示板,我想知道如何在它们被放置后的第二天删除旧通知,这样它就不会使布告板混乱。我没有它的代码,因为我不知道如何做到这一点。任何帮助将不胜感激,对不起,如果这个问题有点乏味。
答案 0 :(得分:1)
您的“通知”表应该有一个“creation_time”字段,当您插入新行时,此字段将填入NOW()。然后你应该创建一个查询,将creation_time与当前时间进行比较,如果超过24小时,你将删除该行。
就代码而言, TIMESTAMPDIFF(DAY, creation_time, NOW())
应该让你开始。 http://www.w3resource.com/mysql/date-and-time-functions/mysql-timestampdiff-function.php
至于自动化,这篇文章可能会有所帮助:Run a mySQL query as a cron job?
答案 1 :(得分:0)
只需添加一个包含通知时间戳的列,然后定期运行一个删除旧脚本的脚本。
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "DELETE FROM notices WHERE time_created < timestampadd(hour, -24, NOW())";
if ($conn->query($sql) === TRUE) {
...
} else {
...
}
$conn->close();