#mysql #arrays #codeigniter #foreach
#mysql #массивы #codeigniter #foreach
Вопрос:
Привет, ребята, я просто хочу спросить, в моем проекте есть три таблицы product, color и product_color.Я вставляю базу данных с помощью insert_batch, тогда она работает нормально, когда я обновляю таблицу product_color с помощью update_batch, то сталкиваюсь с некоторыми проблемами.Вот мой пример кода:
База данных:
product:id,name,sku...
color:id,color_name
product_color:id,pro_id,color_id
Форма ввода:
<?php foreach($colors as $color): ?>
<input type="checkbox" class="form-check-input" name="color[]" value="<?php echo $color->color_id; ?>" <?php foreach ($productcolor as $key => $value){ $array[] = $value->color_id;} if(in_array($color->color_id,$array)) echo 'checked'; else ''; ?>>
<label class="form-check-label">
<?php echo $color->color_name; ?>
</label>
<?php endforeach; ?>
На самом деле я хочу передать основной идентификатор из таблицы product_color.Здесь я передаю color_id.Есть какой-либо способ передать основной идентификатор из формы ввода;
Вот мой контроллер:
$colorBatch = array();
foreach ($color as $colorvalue) {
$colorBatch[] = array(
'id'=>$id
'pro_id' =>$pid,
'color_id' => $colorvalue
);
}
$this->db->update_batch('product_color', $colorBatch,'pro_id');
Где $pid содержит product_id;
Возможно ли передать первичный идентификатор таблицы product_color из формы ввода или есть какое-либо лучшее решение для решения этой проблемы.Извините за плохой английский.
Спасибо
Ответ №1:
Пожалуйста, проверьте приведенный ниже код, поскольку ваша структура массива неверна;
$colorBatch = array();
foreach ($color as $key => $colorvalue) {
$colorBatch[$key] = array(
'id'=>$id
'pro_id' =>$pid,
'color_id' => $colorvalue
);
}
$this->db->update_batch('product_color', $colorBatch,'pro_id');