上传excel表到数据库,abc列都需要添加到数据库,但是还需要添加两个字段,根据b列去查询user表里面的id,根据c列去查询category表里面的id,然后把查询到的id一起添加到数据库添加完以后是这样的

解决方案 »

  1.   


    $insertData = [];
    for(){
        $a='';
        $b='';
        $c='';
        $data['category_id'] = Doo::db()->find()['id'];
        $data['user_id'] = Doo::db()->find()['user_id'];
        $data['name'] = $a;
        $data['no'] = $b;
        $data['category_no'] = $c;
        array_push($insertData,$data);
    }
    db()->insertAll();//优化方向 1、取消 for 循环内的 foreach  循环多次插入数据换成 插入一次多条数据 
    //具体写法 根据你封装的方法或框架方法规则来写
      

  2.   

    另外:数据表 内的 no、idnumber  增加索引
      

  3.   

    这个框架是doophp框架,他的语法规则我有点懵
      

  4.   

    为什么$abc要等于空呢
      

  5.   

    $a $b $c为空是你原代码的数据 我这里很多都没写全,你源代码循环内的foreach可以不要 直接指定下标拿数据,至于要做一次插入所有数据你得看框架的源代码 or 自己封装个insertAll方法ps:数据表的字段索引提升的性能远远大于你代码这边的优化
      

  6.   

    1、确认你这个$no是不是多条数据 (我猜应该不会)
    2、确认你这个$no是不是二维数组 (应该是)
    3、如果是二维数组 直接在 ; 前面加上[0]['user_id']
      

  7.   

    根据数据查询no字段的id