首页 > 解决方案 > Codeigniter如何从数据库中删除帖子数据中不存在的值

问题描述

数据库表:
id | 用户 ID | 技能 ID
1 | 3 | 1
2 | 3 | 4

情况:用户单击按钮提交以将数据发布到数据库->(示例)数据为 user_id (3) 和 Skill_id(1)。

我想与数据库中的数据进行比较,如果数据库中不存在帖子数据,例如帖子数据是 user_id(3) 和 Skill_id(1),那么 id(2) 的数据将被删除。

这样做的目的是为了复选框功能,如果用户勾选复选框,新数据将被添加到数据库中。如果用户取消选中该复选框,则数据将被删除。

我目前的代码:

     $query = $this->partner_vs_skill_model->where('partner_id',$id )->get_all();
        $row = count($query);

        foreach ($query as $row) {
            foreach($skill as $value){
                //$s = $row->skill_tag;
                if($row['skill_id'] === $value){
                    break;
                }
                else{

                }

            }   
        }

标签: phpcodeigniter-3

解决方案


我想你在这里想太多了-

只需先删除您的项目,然后再插入,

以下应该有效(我假设你必须在你的阵列中至少拥有一项技能,但无论你是否想要,这完全取决于你..)

$userId = 3;

if (count($skill) > 0)
{
    $this->db->where('user_id', $userId)->delete('your_table');

    foreach($skill AS $skillId)
    {
        $arrInsertData = [
            'user_id' => $userId,
            'skill_id' => $skillId
        ];
        $this->db->insert('your_table', $arrInsertData);
    }
}

推荐阅读