Heim  >  Artikel  >  Backend-Entwicklung  >  php使用header导出excel时会少第一行

php使用header导出excel时会少第一行

WBOY
WBOYOriginal
2016-06-23 13:59:071281Durchsuche

http://192.168.0.200/test/khall.php?mindate=2014-04-01&maxdate=2014-04-30&keys=


<?php    header("Content-type:application/vnd.ms-excel");    header("Content-Disposition:attachement;filename=".$_GET['keys']."".date("Ymd").".xls");    echo iconv('utf-8', 'gbk', "时间\t类型\t区域\t姓名\t具体地址\t联系电话\t证件号\t套餐\t时长\t赠送\t金额\t经办人\t帐号\t备注\n");      include("db.php");            date_default_timezone_set("PRC");            $mindate=$_GET['mindate'];            $maxdate=$_GET['maxdate'];            $dates="dates>='".$mindate."' and dates<='".$maxdate."'";        if (!empty($_GET['keys'])) {            $keys=$_GET['keys'];            $ww="(`area` like '%".$keys."%' or `type` like '%".$keys."%' or `names` like '%".$keys."%' or `add` like '%".$keys."%' or `dur` like '%".$keys."%')";            $wh="where {$ww} and {$dates}";  }           else{$wh="where {$dates}";}            $sql="SELECT * FROM `khxx` {$wh}";           // echo "$sql";            mysql_query('set names gbk');            $query=mysql_query($sql);            $rs=mysql_fetch_array($query);            while ($rs=mysql_fetch_array($query)){            echo "{$rs['dates']}\t{$rs['type']}\t{$rs['area']}\t{$rs['names']}\t{$rs['add']}\t{$rs['phone']}\t{$rs['no']}\t{$rs['set']}\t{$rs['dur']}\t{$rs['give']}\t{$rs['moneys']}\t{$rs['attn']}\t{$rs['username']}\t{$rs['rem']}\n";            }?>

使用echo 输入sql语句是正常的 
SELECT * FROM `khxx` where dates>='2014-04-01' and dates<='2014-04-30'

可生成时就是少了第一条数据


回复讨论(解决方案)

还有就是使用了mysql_query('set names gbk');
但是上个页面会传递$key变量值 因为传递来的值是utf-8的 在执行sql语句时就会失效

            $rs=mysql_fetch_array($query); //你这里多读了一行
            while ($rs=mysql_fetch_array($query)){

$keys=$_GET['keys'];
改为
$keys = iconv('utf-8', 'gbk', $_GET['keys']);

还有就是使用了mysql_query('set names gbk');
但是上个页面会传递$key变量值 因为传递来的值是utf-8的 在执行sql语句时就会失效
%".$keys."% 改为%". iconv('utf-8', 'gbk', '$keys')."%

$keys=$_GET['keys'];
改为
$keys = iconv('utf-8', 'gbk', $_GET['keys']);
今天少了你的提点可怎么办呀

认识了规律就好了

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn