当前位置:Gxlcms > PHP教程 > php使用header导出excel时会少第一行解决思路

php使用header导出excel时会少第一行解决思路

时间:2021-07-01 10:21:17 帮助过:22人阅读

php使用header导出excel时会少第一行
本帖最后由 u014474944 于 2014-04-11 16:01:35 编辑

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



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'

可生成时就是少了第一条数据
------解决方案--------------------
$rs=mysql_fetch_array($query); //你这里多读了一行
while ($rs=mysql_fetch_array($query)){

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

%".$keys."% 改为%". iconv('utf-8', 'gbk', '$keys')."%

人气教程排行