导出csv

 public function dy(){
        $get = I('get.');//获取查询条件
        if($get){
        $time1 = strtotime($get['time1']);
        $time2 = strtotime($get['time2']);
        $where['mc.createtime']=array(array('gt',$time1),array('lt', $time2),'AND');
        //echo $time1;exit;
        $res = M('member_cash mc')
                    ->field("m.account,mc.money,m.name as t,d.name as y,mc.account as u,mc.createtime")
                    ->join('__BANK__ d on d.id = mc.bid',"LEFT")
                    ->join('__MEMBER__ m on mc.mid = m.id',"LEFT")
                    ->where($where)
                    ->select();
        }else{
             $res = M('member_cash mc')
                    ->field("m.account,mc.money,m.name as t,d.name as y,mc.account as u,mc.createtime")
                    ->join('__BANK__ d on d.id = mc.bid',"LEFT")
                    ->join('__MEMBER__ m on mc.mid = m.id',"LEFT")
                    ->select();
        }
        header("Content-type:text/csv");//要导出的格式
        header("Content-Disposition:attachment; filename=提现" . date('Y-m-d') . ".csv");//文件名称
        $str="会员账户\t,提现金额\t,提现人姓名\t,银行\t,提现账户\t,提现时间\n";//第一行名称
            foreach ($res as $key ) {//数据库里查出来的都是因为是二维数组 所以进行二次遍历
                foreach ($key as $v=>$d) {
                    if($v =='createtime'){  //我这个if是为了遍历的时候直接把时间戳改成日期格式,你们可以不用if直接写$str.=$d."\t";
                        $str.=date('Y-m-d',$d)."\t";
                    }else{
                        $str.= $d."\t,";
                    } 
                }
                $str.=  "\n";   
            }
            echo    iconv("UTF-8","GB2312", $str);
            exit;
    }

你可能感兴趣的:(个人心得)