php导出excel的时候,某些列需要从其他表里面获取(当这个表数据量很大的时候)导出就等待超时了

  • 内容
  • 评论
  • 相关

php导出excel的时候,某些列需要从其他表里面获取(当这个表数据量很大的时候)导出就等待超时了,你可以通过join两个表查询,这样需要改动sql,如果不想改动sql已最简单的方式改下呢,不要再循环里面写sql,而是再循环之前先把数据取出来放进数组(已order_sn为下标的二维数组),再循环里面根据数组下标取出来数据即可。

  
            //先取出来放入数组new
        $listnew = Db::table("client_order_orderdetail")->where("clientkeynum= '$basekeynum' ")->column('order_sn,goodsintegral,sup_price,number','order_sn');     
        $list = Db::table('client_order_info')->where($where)->order("order_id desc")->select();
        $daochu[] = array('订单号', '订单状态', '收货人姓名', '收货人手机号', '收货人地址', 'SKUID', '商品名称', '商品数量', '商品规格', '商品单价', '订单价格', '快递名称', '快递单号', '运费', '原始主订单号', '子订单号', '订单备注',"下单时间","导入时间","发货时间","客户名称","供应商","成本单价","成本总价" );
        foreach ($list as $k => $v) {
            //$list[$k]['g_price'] = Db::table("client_order_orderdetail")->where("order_sn", $v['order_sn'])->value('goodsintegral');
            $order_sn=$v["order_sn"];    
            $v['g_price']=$listnew[$order_sn]['goodsintegral'];
            $v['sup_price']=$listnew[$order_sn]['sup_price'];  
            $v['sup_price_total']=bcmul($listnew[$order_sn]['sup_price'],$listnew[$order_sn]['number'],2);          
   

本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:php导出excel的时候,某些列需要从其他表里面获取(当这个表数据量很大的时候)导出就等待超时了 - https://www.wlphp.com/?post=402

发表评论

电子邮件地址不会被公开。 必填项已用*标注