Я пытаюсь получить форму, представленные значения в массиве после isset()
но он хранит только последний isset()
значение в массиве. Как правильно получить все ненулевые значения в массиве для передачи в функцию вставки.
$table = 'booking';
if(isset($_POST['tourID'])){
$data = array('tour_fk' => $this->input->post('tourID'));
}
if(isset($_POST['bookingNumber'])){
$data = array('booking_number' => $this->input->post('bookingNumber'));
}
$query = $this->dashboard_model->insert($table, $data);
Правильный путь — добавить новые ключи $data
вместо переназначения:
if (isset($_POST['tourID'])){
$data['tour_fk'] = $this->input->post('tourID');
}
if (isset($_POST['bookingNumber'])){
$data['booking_number'] = $this->input->post('bookingNumber');
}
Вы можете достичь этого. Сделайте массив всех ненулевых ключей со значениями. Не нужно писать isset()
для каждого размещенного товара. Просто используйте foreach
Цикл. И добиться своего результата.
$table = 'booking';
foreach($_POST as $key=>$value) {
if(isset($_POST[$key])) {
$data[$key]=$this->input->post($key);
}
}
//print_r($data);
Вот пример для вас ..
$array = array('tour_fk'=>1,'booking_number'=>11,'empty_field'=>NULL);
foreach($array as $key=>$value) {
if(isset($array[$key])) {
$data[$key]=$value;
}
}
print_r($data);
Выход:
Array ( [tour_fk] => 1 [booking_number] => 11 )//without null values