Я изучаю Codeigniter и поражаюсь некоторой турбулентностью.Одно из моих полей ввода собирает массив значений (из флажков), в то время как остальные являются отдельными значениями.Я хотел бы вставить данные в MySQLi таким образом, чтобы количество вставленных строк равнялось количеству значений в массиве.Это выглядит так:
Мой контроллер:
function request_rooms() {
if ($_POST) {
//room is an array or one or more values
$this->form_validation->set_rules('room[]', 'Select Box', 'trim|required|min_length[1]|max_length[25]');
$this->form_validation->set_rules('guest_id', 'Guest ID', 'trim|required|xss_clean|min_length[4]|max_length[20]');
$this->form_validation->set_rules('date_in', 'Check-in Date', 'trim|required|exact_length[10]');
$this->form_validation->set_rules('date_out', 'Check-out Date', 'trim|required|exact_length[10]');
if ($this->form_validation->run($this) == FALSE) {
$somedata = array('errors' => validation_errors());
$this->session->set_flashdata($somedata);
require("includes/load_view_reservation.php");
} else {
//Prepare data to send to Reservation model
$data = array(
'room_no' = ?
'guest_id' = $this->input->post('guest_id'),
'check_in' = $this->input->post('check_in'),
'check_in' = $this->input->post('check_in')
$this->reservation_model->insert_reservation($data);
}
}
}
Проблема: Моя проблема в том, как обрабатывать массив комнат.Я хочу создать массив $ data для данных, которые будут вставлены в базу данных.Предположим, что вход массива комнат ($ this-> input-> post ('room []')) выглядит следующим образом:
$room = array(42, 123, 16);
Я бы хотел, чтобы массив $ data был таким:
$data = array
(
array(
"room_no" => "42",
"guest_id" => "2",
"date_in" => "2018-05-20",
"date_out" => "2018-05-27"
),
array(
"room_no" => "123",
"guest_id" => "2",
"date_in" => "2018-05-20",
"date_out" => "2018-05-27" ),
array(
"room_no" => "16",
"guest_id" => "2",
"date_in" => "2018-05-20",
"date_out" => "2018-05-27" )
);
У меня есть слабая идея, что цикл может выполнить что-то вроде этого, так что часть room_no массива имеет каждое из значений из массива, в то время как другие значения остаются прежними, но я не могу понять, какпродолжить.
Вопрос:
Как создать многомерный массив, как описано выше в Codeigniter?Во-вторых, пока что я вставил (в MySQL) только простой одномерный массив с использованием модели Codeigniter.Как мне вставить многомерный массив, как показано выше?Пожалуйста, помогите.