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://wlphp.com/?post=402