Как я могу решить мою проблему пакетного обновления codeigniter? - PullRequest
0 голосов
/ 21 апреля 2019

Здравствуйте, ребята. Я просто хочу спросить, в моем проекте есть три таблицы 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 Ответ

1 голос
/ 22 апреля 2019

Пожалуйста, проверьте код ниже, так как ваша структура массива неверна;

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