使用fputcsv只返回要导出的一行数据

时间:2014-08-16 00:13:10

标签: php csv export-to-csv fputcsv

我在这里有一些代码导出到csv文件。我连接到数据库,看到有超过30个条目左右。但我只在csv文件中获得一个。顶部获取文件的标题,底部获取值,values数组仅返回一个数组并将其放入文件中。我不确定是什么导致了这个问题。非常感谢Anny的建议。

<?php
$FileName = "mro_export_".date("Y-m-d_H-i",time()).".csv";
$file = fopen($FileName,"w");

$sql = mysql_query("SELECT * FROM `$table` LIMIT 11");
$row = mysql_fetch_assoc($sql);
// Save headings alon
$HeadingsArray=array();
foreach($row as $name => $value){
    $HeadingsArray[]=$name;
}
fputcsv($file,$HeadingsArray);
$ValuesArray=array();
foreach($row as $name => $value){
    $ValuesArray[]=$value;
}
fputcsv($file,$ValuesArray);
fclose($file);

header("Location: $FileName");
?>

1 个答案:

答案 0 :(得分:1)

您需要在循环中调用mysql_fetch_assoc以获取所有行。

<?php
$FileName = "mro_export_".date("Y-m-d_H-i",time()).".csv";
$file = fopen($FileName,"w");

$sql = mysql_query("SELECT * FROM `$table` LIMIT 11") or die(mysql_error());
$first_line = true;
while ($row = mysql_fetch_assoc($sql)) {
    if ($first_line) {
        // Save headings alon
        fputcsv($file, array_keys($row));
        $first_line = false;
    }
    fputcsv($file, array_values($row));
}
fclose($file);

header("Location: $FileName");
?>