-1

Webで次のスクリプトを見つけて、必要に応じて編集しましたが、列名を変更する方法がわかりません。現状では、列名はデータベース内の対応する列の名前としてスプレッドシートに表示されます。これを変更する方法はありますか?

アドバイスありがとうございます!これが私のコードです:

<?php
$host = 'asdf';
$user = 'asdf';
$pass = 'asdf';
$db = 'asdf';
$table = 'stats';
$file = 'export';

    $fields = "date, name, time, inbset, asapset, faxset, obset, totset, inbclo, asapclo, faxclo, obclo, totclo, inbtot, asaptot, faxtot, obtot, total, comments";

$filename = $file."_".date("Y-m-d");

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].", ";
$i++;
}
}
$csv_output .= "\n";

$values = mysql_query("SELECT $fields FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j].", ";
}
$csv_output .= "\n";
}

$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>
4

4 に答える 4

3

あなたがそこに持っているコード-おそらくあなた自身によって書かれて理解されているのではなく、コピーして貼り付けられている-は統合失調症です。

一方では、上部に列名を定義します。

    $fields = "date, name, time, inbset, asapset, faxset, obset, totset, inbclo, asapclo, faxclo, obclo, totclo, inbtot, asaptot, faxtot, obtot, total, comments";

一方、データベースからそれらを読み取ります。

$result = mysql_query("SHOW COLUMNS FROM ".$table."");

CSVファイルの列名だけを含む2番目の変数を作成し、それをファイルの最初の行として配置することをお勧めします。仕事は終わりました。

于 2012-08-14T23:17:34.880 に答える
2

列名は、CSV出力の最初の行から取得されます。

20行目あたり: $csv_output .= $row['Field'].", ";

そのコードのブロックを削除し、必要に応じて列名の行を出力します:「列名1、列名2、列名3、...」

于 2012-08-14T23:15:46.720 に答える
1

ヘッダー行を生成する行は次のとおりです。

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].", ";
$i++;
}
}
$csv_output .= "\n";

したがって、必要に応じてヘッダー行の先頭に移動するには、このコードを変更する必要があります。これが必要ない場合は、データベースクエリも保存されます

于 2012-08-14T23:17:58.020 に答える
0

選択するときは「AS」を使用する必要があります。

たとえば、私はテーブルの人々を手に入れました:

id,username,name,birth
1,alpera,aykutalper,1985

私が使用する場合

select username from people where id=1;
this returns
|username|
|alpera  |

私が使用する場合

select username as user from people where id=1;
this returns
|user    |
|alpera  |

私はそれがあなたが望むものであることを願っています。

于 2012-08-14T23:17:44.103 に答える