PHP菜鸟博客_共同学习分享PHP技术心得【PHP爱好者】
php导出excel的时候,某些列需要从其他表里面获取(当这个表数据量很大的时候)导出就等待超时了
2023-4-28 菜鸟站长


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);          

   

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容