【问题标题】:How can i solve my codeigniter batch update problem?如何解决我的 codeigniter 批量更新问题?
【发布时间】:2019-09-11 01:24:53
【问题描述】:

大家好,我只想问在我的项目中有三个表 product、color 和 product_color。我使用 insert_batch 插入数据库然后它工作正常,当我使用 update_batch 更新 product_color 表时遇到一些问题。这是我的示例代码:

数据库:

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 表中传递主 ID。这里我通过 color_id。有任何方法可以从输入表单中传递主 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 表主 ID 或有任何更好的解决方案来解决这个问题。抱歉英语不好。

谢谢

【问题讨论】:

    标签: mysql arrays codeigniter foreach


    【解决方案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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多