ホームページ > バックエンド開発 > PHPチュートリアル > PHP がヘッダーを使用して Excel をエクスポートすると、最初の行が欠落します。

PHP がヘッダーを使用して Excel をエクスポートすると、最初の行が欠落します。

WBOY
リリース: 2016-06-23 13:59:07
オリジナル
1321 人が閲覧しました

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";            }?>
ログイン後にコピー

SQL文を入力するにはechoを使うのが普通です
SELECT * FROM `khxx` where dates>='2014-04-01' and dates<='2014-04-30'
ログイン後にコピー

生成できても最初のデータが抜けています


ディスカッションへの返信(解決策)

もありますmysql_query('set names gbk '); の使用 ただし、送信される値が UTF-8 であるため、$ キーの値は前のページに渡されます。
$ rs = mysql_fetch_array ($ query); // 詳細はここを参照してください。 A 行 h While ($ rs = MySQL_FETCH_ARAY ($ Query)) {



$keys = $ _get ['keys']); ;

mysql_query('set names gbk'); の使用もあります
ただし、SQL ステートメントの実行時に渡される値は utf-8 であるため、$key 変数の値は無効になります。 %".$keys."% を %".iconv('utf-8', 'gbk', '$keys')."%


$keys=$_GET['keys']
変更to
$keys = iconv('utf-8', 'gbk', $_GET['keys']);
今日はアドバイスなしでどうすればいいですか?

ルールを理解すれば大丈夫です

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート