Ошибка: неизвестный столбец «Массив» в «предложении где» - PullRequest
1 голос
/ 11 октября 2011

Я хочу обновить несколько строк из таблицы базы данных с помощью 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
Неизвестный столбец «Массив» в «выражении where»
ОБНОВЛЕНИЕ hotel_units SET 0 = Массив ГДЕ id = Массив
Имя файла: D: \ xampp \ htdocs \ system \ database \ DB_driver.php
Номер строки: 330

Обновление:

У меня новая ошибка:

Обнаружена ошибка PHP
Серьезность: Уведомление
Сообщение: неопределенное смещение: 1
Имя файла: Residence.php
Номер строки: 212

Обнаружена ошибка PHP
Серьезность: уведомление
Сообщение: неопределенное смещение: 2
Имя файла: Residence.php
Номер строки: 212

Ошибка PHP
Уровень серьезности: Уведомление
Сообщение: неопределенное смещение: 3
Имя файла: Residence.php
Номер строки: 212

'service_un' =>...Есть флажок.Смотрите номер строки: 212 в коде выше php

1 Ответ

1 голос
/ 11 октября 2011

Похоже, $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]));
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...