在查询中创建空间以导出csv文件

时间:2012-06-20 10:38:22

标签: php mysql export-to-csv

  

可能重复:
  PHP code to convert a MySQL query to CSV

我正在尝试导出一个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);

2 个答案:

答案 0 :(得分:3)

您可以考虑使用fputcsv代替fwrite的麻烦。语法如下:

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参数。

答案 1 :(得分:-1)

在foreach中尝试这个。

fwrite($ fh,$ item。',');

看一看 http://net.tutsplus.com/tutorials/php/how-to-generate-a-complete-excel-spreadsheet-from-mysql/