#php #arrays #codeigniter
#php #массивы #codeigniter
Вопрос:
Я хочу обновить несколько строк из таблицы базы foreach
данных, но выдаю следующую ошибку:
Это мой php-код:
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence,
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]), // This Is Line Number: 212
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};
Приведенный выше код содержит эту ошибку:
Произошла ошибка базы
данных Номер ошибки: 1054
Неизвестный столбец ‘Array’ в предложении ‘where’
UPDATEhotel_units
SET0
= Array WHEREid
=
Имя файла массива:
D:xampphtdocssystemdatabaseDB_driver.php Номер строки: 330
Обновить:
У меня новая ошибка:
Обнаружена ошибка PHP
Серьезность:
Сообщение об уведомлении: Неопределенное смещение: 1
Имя файла:
residence.php Номер строки: 212Обнаружена ошибка PHP
Серьезность:
Сообщение об уведомлении: Неопределенное смещение: 2
Имя файла:
residence.php Номер строки: 212Обнаружена ошибка PHP
Серьезность: Уведомление
Сообщение: Неопределенное смещение: 3
Имя файла:
residence.php Номер строки: 212
'service_un' =>...
являются флажком. Смотрите Номер строки: 212 в приведенном выше коде php
Ответ №1:
Похоже $id_units
, это массив значений.
Вы могли бы попробовать с этим кодом, но он предполагает, что, как и остальные ваши поля ввода, id также является массивом и имеет тот же индекс, что и другие. Вы не предоставили свою HTML-форму, поэтому я просто предполагаю….В любом случае, последний параметр $this-> db-> where() должен быть единственным значением, даже если вы записываете его как массив (но из одного элемента).
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence, // Or is it $id_residence[$idx] ?
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]),
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};
Комментарии:
1. Да, это массив, но теперь у меня есть эта ошибка:
Unknown column '0' in 'field list', UPDATE 'hotel_units' SET '0' = Array WHERE 'id' = '32'
2. @Alicia Cibrian понял, я исправил свой ответ: должно быть
$data2
, нет$data2[]
, я раньше этого не видел3. Не могли бы вы опубликовать свою HTML-форму? В противном случае это была бы просто игра в угадывание с моей стороны… Вы получите больше помощи даже от других людей, если сможете опубликовать структуру своей формы