update_batch и вставить в codeigniter - PullRequest
0 голосов
/ 08 марта 2019

У меня есть две таблицы.первый - клиент, а второй - customer_tel.у каждого клиента может быть один или несколько номеров телефонов, поэтому я сохраняю номер клиента в customer_tel.Моя проблема связана с обновлением customer_tel.я не знаю, сколько у клиента может быть тел.так что, если у клиента уже есть номер tel_number, и теперь он хочет отредактировать его или добавить новый номер tel_number, как я могу использовать update и вставить вместе?например, таблица customer:

id = 1 , fullname : john doe

, а customer_tel:

id = 1 , customer_id = 1 , tel_number = 123456789
id = 2 , customer_id = 1 , tel_number = 123456

, каждый пользователь может редактировать или добавлять свой номер tel_number.Я знаком с update_batch, но здесь он не может работать, потому что я тоже вставил в то же время.Мое решение состоит в том, чтобы удалить строки, у которых customer_id = 1 и insert_batch новые данные.Есть ли способ лучше, чем этот?

        for($i = 0 ; $i < sizeof($_POST['tel_title']) ; $i++){
        $tel[] = array(
         'customer_id'=> $id,
         'tel_title'=> htmlspecialchars($_POST['tel_title'][$i]),
         'tel' => htmlspecialchars($_POST['tel'][$i])
        );
    }
    $this->base_model->delete_data('customer_tel' , array('customer_id'=> $id));
    $res = $this->base_model->insert_batch('customer_tel' , $tel);

1 Ответ

0 голосов
/ 09 марта 2019

Попробуйте

$this->db->delete('customer_tel' , array('customer_id'=> $id));
$res = $this->db->insert_batch('customer_tel' , $tel);

вместо

$this->base_model->delete_data('customer_tel' , array('customer_id'=> $id));
$res = $this->base_model->insert_batch('customer_tel' , $tel);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...