2

我有 PostCategory 表:

CREATE TABLE IF NOT EXISTS `PostCategory` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `PostID` int(11) NOT NULL,
  `CategoryID` int(11) NOT NULL,
  PRIMARY KEY (`ID`)
)

假设我有以下记录:

ID || PostID || CategoryID
===========================
1  ||   1    ||   1
2  ||   1    ||   2
3  ||   1    ||   3
4  ||   2    ||   2

当我需要更新 ID 为 1 的帖子类别时出现问题现在,如果我更改帖子类别,我会得到这个数组:

$categories = array(1, 2, 4);

我想更新我的表,使它看起来像这样:

ID || PostID || CategoryID
===========================
1  ||   1    ||   1
2  ||   1    ||   2
4  ||   2    ||   2
5  ||   1    ||   4

如您所见,我想再添加一条 CategoryID 为 4 的记录并删除 CartegoryID 为 3 的记录,我想使用这样的一个模型:

$this->postCategory_model->update_post_categories($categories);

我只是无法弄清楚这种模型方法的正确结构。

寻找一些建议

谢谢!

4

1 回答 1

0

确定删除旧的比检查现有的然后更新更快

function update_post_categories($PostID, $categories) {
    $this->db->trans_start();
    //delete old cats
    $this->db->where('PostID', $PostID);
    $this->db->delete('Posts');
    //insert new ones
    foreach ($categories as $cat) {
        $this->db->set('PostID ', $PostID);
        $this->db->set('CategoryID', $cat);
        $this->db->insert('PostCategory');
    }

    $this->db->trans_complete();
}
于 2013-07-26T13:02:23.407 回答