You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter表单多选框提交多条数据仅单条入库问题排查

问题原因
  • 核心错误是数据组装逻辑的位置写在了遍历查询结果的循环之外:
    1. 遍历$generateawb多行结果时,$clientid、$batchnumber两个变量每次循环都会被新的行数据覆盖,循环结束后仅保留最后一行的对应值
    2. 仅在循环结束后向$data数组中推送了一次数据,导致$data数组永远只有1条待插入记录,调用insert_batch自然只会插入1条数据
  • 额外注意:如果业务要求每条插入的记录生成独立的AWB编号,生成随机AWB的逻辑也需要放到循环内部;如果同批次选中的记录共用同一个AWB编号,生成逻辑可以保留在循环外。
修正后的控制器代码
public function generateawb() {
    $data = array();
    if(isset($_POST['savemedaa']))
    {
        $checkboxs = $_POST['generateawb'];
        $generateawb = $this->excel_import_model->selectawb($checkboxs);

        // 如果同批次选中的记录需要共用同一个AWB,生成逻辑放这里
        // $awbg = random_int(100000000, 999999999);
        // $awb='LRG'.$awbg;

        foreach($generateawb as $row){
            // 如果每条记录需要独立的AWB,生成逻辑放这里
            $awbg = random_int(100000000, 999999999);
            $awb='LRG'.$awbg;
            // 每次循环都组装一条数据插入到$data数组
            $data[] = array(
                'clientid'=> $row->id,
                'awb'=> $awb,
                'batchnumber'=> $row->batchnumber,
            );
        }

        $this->excel_import_model->generateawb($data);
    }
}

内容的提问来源于stack exchange,提问作者Pirate T.V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:39:03