0

我有一个 SQL 表,用户在其中列出了他们接下来即将举行的三场艺术展。

我正在整理一个 cron 作业维护脚本,我希望它可以删除已经发生的节目。但后来我也想“将其他人向上移动”.. 这样 show1 被擦除,但 show2 变成 show1, show3 变成 show2, show3 现在是空的。

这是解决这个问题的最佳方法吗?(使用 Codeigniter 顺便说一句)请注意,对于每个节目,实际上还有其他信息(show1title、show1desc 等)我必须移动......但为了清楚起见,我在此处减少了它。

$_sql = "SELECT users.id FROM users WHERE users.show1date < CURDATE() AND users.show1date != 0000-00-00";
$_query = $this->db->query( $_sql );
if ($_query->numRows() > 0){
    foreach ($_query as $_row) {
        $_id = $row->id;
        $_show2date = $_row->show2date;
        $_show3date = $_row->show3date;
        $_sql = "UPDATE users SET users.show1date = ?, users.show2date = ?, users.show3date ='' WHERE users.id = ?";
        $_query = $this->db->query( $_sql, array($show2date, $show3date, $_id) );
    }
}

这将“移动所有节目”并使 show3 现在为空。这是解决这个问题的好方法吗?似乎有更好的方法?

现在我在想..也许是一个单独的表格,用于以 user.id 作为外键的节目?

4

0 回答 0