mysql — как назначить массиву множественные значения с помощью ввода isset при отправке формы в переполнении стека

Я пытаюсь получить форму, представленные значения в массиве после 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);

0

Решение

Правильный путь — добавить новые ключи $data вместо переназначения:

if (isset($_POST['tourID'])){
$data['tour_fk'] = $this->input->post('tourID');
}
if (isset($_POST['bookingNumber'])){
$data['booking_number'] = $this->input->post('bookingNumber');
}
1

Другие решения

Вы можете достичь этого. Сделайте массив всех ненулевых ключей со значениями. Не нужно писать 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
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector