Codeigniter如何从发布数据中不存在的数据库中删除值

时间:2018-06-11 10:10:09

标签: php codeigniter-3

Db表:
id | user_id | skill_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{

                }

            }   
        }

1 个答案:

答案 0 :(得分:0)

我猜你在这里过分思考 -

首先删除您的项目,然后将其插入

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

$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);
    }
}