0

重複の可能性:
MySQL クエリを CSV に変換する PHP コード

csv ファイルをエクスポートしようとしていますが、すべてが単純な行として表示されるため、印刷されたデータベースのフィールド間にスペースを作成する必要があります。

私がする必要があるのは、ヘッダーにフィールドの名前も出力することです..ここに私が持っているコードがあります。最初に、csv タブのフィールドをエクスポートするか、フィールド間のスペースだけをエクスポートする必要があります...

if ( !$result1 ) { echo mysql_error(); }
while ($row = mysql_fetch_array($result1)) {
    $last = end($row);
    foreach ($row as $item) {
        fwrite($fh, $item);
        if ($item != $last)
            fwrite($fh, "\t");
    }
    fwrite($fh, "\n");
}
fclose($fh);
4

2 に答える 2

3

この面倒な fwrite の代わりに、fputcsvを使用することを検討してください。構文は次のようになります。

int fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] )

あなたのコードでは、次のようになります。

$fh = fopen('file.csv', 'w');
if ( !$result1 ) { echo mysql_error(); }
while ($row = mysql_fetch_array($result1)) {
    fputcsv($fh, $result1, ',');
}
fclose($fh);

$enclosure文字列値に他の引用符を使用する必要がある場合は、オプションのパラメーターを使用できます (二重引用符が標準です)。

于 2012-06-20T11:25:48.547 に答える
-1

foreach


fwrite($fh, $item.','); でこれを試してください。

http://net.tutsplus.com/tutorials/php/how-to-generate-a-complete-excel-spreadsheet-from-mysql/をご覧ください。

于 2012-06-20T10:53:34.520 に答える