У меня есть форма для сайта отеля, где я хочу обновить его услуги, и клиент хочет обновлять сразу несколько сервисов. Однако я потерял, как сохранить его в базе данных с помощью модели.Как сохранить несколько строк в mysql с помощью codeigniter
Я уже построил мой контроллер, это выглядит примерно так:
$items = array(
array(
'id' => $this->input->post('id1', true),
'hotel_id' => $hotel_id,
'des_servicio' => $this->input->post('des_servicio1', true),
'est_activo' => $this->input->post('est_activo1', true)
),
array(
'id' => $this->input->post('id2', true),
'hotel_id' => $hotel_id,
'des_servicio' => $this->input->post('des_servicio2', true),
'est_activo' => $this->input->post('est_activo2', true)
),
array(
'id' => $this->input->post('id3', true),
'hotel_id' => $hotel_id,
'des_servicio' => $this->input->post('des_servicio3', true),
'est_activo' => $this->input->post('est_activo3', true)
)
);
$this->hotel_model->save_multiple($items);
[UPDATE]
это как моя новая модель выглядит следующим образом:
function save_multiple($items = array())
{
$this->db->insert_batch($this->__tabla, $items);
return $this->db->affected_rows();
}
Моя проблема заключается в том, что теперь он создает 10 строк (моя первоначальная форма имеет 10 полей), даже если я заполню только 3 поля. Поэтому в моей базе данных хранятся 3 службы, а также 7 пустых строк. Как это изменить?
Вы также можете посмотреть $ this-> db-> insert_batch ('mytable', $ items); – Aaron
@ Аарон спасибо, это очень полезно, но теперь у меня есть проблема, о которой я упоминаю, поля не являются необязательными и создают пустые строки, когда я их не заполняю. Поскольку я упоминаю, что моя оригинальная форма имеет 10 полей, поэтому, когда я заполняю только 2 или 3, в базе данных все еще создаются 10 строк. Вы знаете, как это изменить? – Ant100