2015-01-21 77 views
0

我的表中有很多字段已經序列化,以保持字段數量不變。對於一切,因爲它存儲數據並在需要時我可以用下面的一個例子可以完美運行:使用fputcsv將數組存入CSV CSV文件

$dateofbirth = unserialize($row['dateofbirth']); 
$dobday = $dateofbirth[0]; 
$dobmonth = $dateofbirth[1]; 
$dobyear = $dateofbirth[2]; 

出生日期存儲爲dd,mm,yyyy和一切我可以把它的罰款。我的問題是,現在我試圖使用fputcsv使用下面創建一個CSV文件:

$result = mysqli_query($con, 'SELECT u.user_id, b.dateofbirth FROM Users u INNER JOIN Basic b USING (user_id) ORDER BY user_id DESC'); 

$fp = fopen('latest.csv', 'w'); 

fputcsv($fp, array('User ID', 'DOB')); 

的CSV產生,但出生列在其輸出爲"*a:3:{i:0;s:2:"03";i:1;s:2:"02";i:2;s:4:"1986";}*"的CSV的日期,因爲它仍明顯序列化。我處理這些領域的最佳和最簡單的方法是什麼?

非常感謝提前。

+0

已經回答了在 http://stackoverflow.com/questions/28019566/csv-php-mysql-data-export-all-data-is-being-exported-in-one-column/28019579# 28019579 – 2015-01-21 11:01:19

+0

@SunilPachlangia根據我對這個問題的理解,他們在1列中擁有所有的值。我有多個列,其中一些是數組,其中一些不是。 – BN83 2015-01-21 11:04:35

回答

0

U可以試試這個:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-type: text/csv"); 
header("Content-Disposition: attachment; filename=latest.csv");// Disable caching 
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1 
header("Pragma: no-cache"); // HTTP 1.0 
header("Expires: 0"); // Proxies 

$fp = fopen('latest.csv', 'w'); 

while($row = mysqli_fetch_array($result)){ 

fputcsv($fp,array($row[0],$row[1])); 
} 

//或者你可以在沒有頭使用上述

或設置一些格式,出生日期,如:

$rowdob = date("M d, Y - g:i:s A", strtotime($row[0])); 

的同時循環並將$ rowdob傳遞給fputcsv();