2014-05-07 18 views
0

所以我從來沒有寫過一個csv文件,但總是從csv文件讀取。根據我讀過的一些例子,這是我嘗試過的。mysql結果寫入到csv文件的數組?

<?php 
$newCsvData = array(); 
$getCats = "SELECT * FROM $termTax WHERE taxonomy = 'product_cat'"; 
$catresults = $wpdb->get_results($getCats); 

foreach($catresults as $catresult) { 
    $newCsvData[] = $catresult->term_id; 
} 
    $handle = fopen('export.csv', 'w'); 
    foreach ($newCsvData as $line) { 
    fputcsv($handle, $line); 
    } 
    fclose($handle); 
?> 

我結束了錯誤說fputcsv()預計參數2爲陣列,在給定的字符串是該線

fputcsv($handle, $line); 

如果我的var_dump($ catresult);我得到的行中的一切都如預期中的數組... 例

object(stdClass)#401 (6) { ["term_taxonomy_id"]=> string(3) "224" ["term_id"]=> string(2) "37" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "0" } object(stdClass)#402 (6) { ["term_taxonomy_id"]=> string(2) "35" ["term_id"]=> string(2) "35" ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(1) "1" } 

我只是不知道怎麼寫陣列到CSV ...

如果我的var_dump($線)我得到字符串(2)「37」每個字符串和它的正確值。

我在正確的道路上嗎?提前致謝。

更新:所以我創建了一個空白的PHP文件在我的wordpress安裝的根目錄,並使用此代碼,它的作品發現...以及某些代碼下面固定的代碼...但事情是它不會從內部工作我正在開發的插件。

+0

什麼樣的價值觀不'的var_dump($ newCsvDat)'返回? –

+0

從代碼很明顯。它是數組,每個字段包含$ catresult-> term_id作爲字符串。 –

回答

2

錯誤消息告訴你什麼是錯的。

fputcsv()預計參數2是陣列

從你自己也承認(重點煤礦)

如果我的var_dump($線)我得到字符串(2)「37」每個字符串及其正確的值

爲什麼不試試這個?你正在建立一個數組。

foreach($catresults as $catresult) { 
    $newCsvData[] = $catresult->term_id; 
} 
fputcsv($handle, $newCsvData); 
+0

是的,我同意,這不僅僅是清楚。但每個人都必須以某種方式開始:) –

+0

這樣他就會將他的數據放在列中,而不是行中。 –

+0

我試過,謝謝。也許它只是因爲某種原因而不寫......我不再那些錯誤。我早些時候做了類似的事情,沒有錯誤,但仍然沒有寫入csv文件。 – Bowenac

1

錯誤信息非常清楚,沒有什麼好說的了。

只需創建每一行($newCsvData陣列場)作爲數組:

$newCsvData[] = array($catresult->term_id); 

這樣你就具有在CSV每一行與列1中的文件。

如果你想有例如3列的CSV文件,使用這樣的:

$newCsvData[] = array(
    $catresult->term_id, 
    $catresult->another_filed, 
    $catresult->yet_another_field 
); 
+0

感謝您的建議,但它沒有寫入csv文件。 – Bowenac

+0

什麼不寫入CSV文件? –

+0

從手冊:'int fputcsv(resource $ handle,array $ fields [,string $ delimiter =「,」[,string $ enclosure =''']])' - 它放置$ fields數組的一行字段(列)到CSV文件中,這意味着什麼「它不寫」?什麼不寫?粘貼你的代碼,發佈你的錯誤。 –