我想從我的MySQL數據庫導出數據到多個CSV文件,然後GZIP他們。PHP的CSV導出功能
我有一對夫婦的問題,這使得它導出爲CSV文件複雜...
- 幾個字段(10)需要在1個CSV文件
- 其他領域(多!)是序列化並需要導出到另一個CSV文件中,該文件中包含另外兩個非序列化字段。
我想要做的就是將所有這些CSV文件創建在gzip文件中......這就是我到目前爲止所做的!會發生什麼用戶檢查不同的複選框,他們想要導出哪個文件。然後傳遞給這個文件,每個文件有不同的SELECT查詢和字段名稱。我甚至還沒有開始處理序列化的數據......我不知道我將如何去做。然後它返回CSV文件,並將該文件放入一個等待導出到gzip的數組中......甚至不知道我是否可以這樣做。
任何建議或幫助將不勝感激!
$files = array();
if(in_array("general", $_POST['exportid'])){
$files[] = CSVoutput("SELECT timestamp, id, monday, tuesday, wednesday, thursday, friday, saturday, sunday, records, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24 FROM hourly", array(timestamp, id, monday, tuesday, wednesday, thursday, friday, saturday, sunday, records, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 23, 24));
}
function CSVoutput($query, $fields){
$rsSearchResults = mysql_query($query) or die(mysql_error());
$out = '';
$columns = count($fields);
// Put the name of all fields
for ($i = 0; $i < $columns; $i++) {
$l= $fields[$i];
$out .= '"'.$l.'",';
}
$out .="\n";
// Add all values in the table
while ($l = mysql_fetch_array($rsSearchResults)) {
for ($i = 0; $i < $columns; $i++) {
$out .='"'.$l["$i"].'",';
}
$out .="\n";
}
return $out;
}
exit;
有關如何在腳本中實現該功能的任何建議? – 2010-03-01 08:35:47
我不喜歡爲人編寫代碼,但我正在編輯一些僞代碼 – 2010-03-01 09:02:20
這真的很有幫助。謝謝 – 2010-03-02 06:35:57