2012-03-06 56 views
1

我正在成功从查询创建CSV文件并将文件保存在服务器上,但无法将csv包含每个查询列名称的标题字段。我正在从mysql_field_name创建一个标题数组,但无法将它写入到csv,它只写入表数据。任何想法/例子非常感谢。将查询保存为CSV文件,但无法获取表格标题字段名称以CSV格式写入

//Create a CSV for 
$result = mysql_query("SELECT * FROM `car_details`"); 
if (!$result) die('Couldn\'t fetch records'); 
$num_fields = mysql_num_fields($result); 
$headers = array(); 
for ($i = 0; $i < $num_fields; $i++) 
{  
     $headers[] = mysql_field_name($result , $i); 
} 
$csv_filename = "Policy-" .$datetime.".csv"; 
$fp = fopen($csv_filename, 'w+'); 


if ($fp && $result) 
{  
     while ($row = mysql_fetch_row($result)) 
     { 
      fputcsv($fp, array_values($row)); 
     } 
} 
+0

嗯,你没写$头阵列(即未使用的变量)。 – 2012-03-06 13:07:11

回答

0

尝试将$ header作为第一行写入文件。

+0

当然 - 我只需要fputcsv($ fp,array_values($ headers));在写入数据的while循环之前。有时不能看到树木的木头!感谢您的指导,感谢。 – Marc 2012-03-06 13:14:57

1

会是什么样子:

... 
if ($fp && $result) 
{ 
    fputcsv($fp, $headers); 
    while ($row = mysql_fetch_row($result)) 
    { 
     fputcsv($fp, array_values($row)); 
    } 
}