Codeigniter как удалить значение из базы данных, которого нет в данных поста - PullRequest
0 голосов
/ 11 июня 2018

Таблицы БД:
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 голосов
/ 11 июня 2018

Полагаю, вы слишком много обдумываете -

просто сначала удалите свои элементы и вставьте их после,

должно работать следующее (я предположил, что вы должны иметь прихотя бы один навык в вашем массиве, но вам решать, хотите вы этого или нет ..)

$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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...