2013-02-21 71 views
0

所以我試圖做一個.csv文件,我會下載它後,但問題是,行不會正確安排。 我正在使用fputcsv。使用PHP創建csv文件從MySQL結果?

$tot.="$codcomanda,$clientnume,$brandnume,$numeprod,$um,$cantitate,$updatare"; 
$list =array(
    array('Comanda','Client','Categorie','Produs','UM','Cantitate','Actualizare'), 
    array($tot), 
); 

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

foreach ($list as $fields) { 
    fputcsv($fp, $fields); 
} 

fclose($fp); 

變量$ TOT是從while聲明,並從不同的查詢獲取其變量,我無法找到是我的needs.I've嘗試了幾種方式,試圖讓互聯網上的PHP代碼它的工作,但沒有。 我試過使$tot不同的方式,但沒有工作,要麼$ tot。= csv文件應該有類似的東西。

  • 標題行,
  • 1號線,
  • 2號線,

但我的CSV節目,如

  • 標題行,
  • 「線路1 ,Line2等「

我試過讓$tot不同的方式,但沒有工作,無論是csv這樣的展示或根本不顯示任何內容。


解決:使用fwrite我解決了它。

$tot.="$codcomanda;$clientnume;$brandnume;$numeprod;$um;$cantitate;$updatare;\n"; 
$tot2="Comanda;Client;Brand;Produse;U.M;Cantitate;Actualizare;\n$tot"; 

    $file = fopen("file.csv","w"); 
    fwrite($file,$tot2); 
    fclose($file); 

它寫它就像它應該。

+0

任何機會你嘗試在查看此Windows與記事本一樣簡單?很有可能你的CSV格式是linux格式的,它使用不同的行結束符。如果這個簡單,一個好的編輯會將它們顯示爲單獨的行。 – hexblot 2013-02-21 15:22:10

+0

同樣在記事本和MS excel 2012.And是的確使用ubuntu 12.04與Gedit作爲文本編輯器和Libreoffice計算器。 – adi 2013-02-21 16:00:17

+0

請記得下載並檢查記事本++ http://notepad-plus-plus.org/ – hexblot 2013-02-21 16:05:30

回答

0

嘗試fopen()函數的調用之前加入這一行:函數ini_set(「auto_detect_line_endings」,真)

+0

沒有任何反應 – adi 2013-02-21 16:00:33

1

嘗試像下面的示例

 <?php 
      $list =array(
         array('Comanda','Client','Categorie','Produs','UM','Cantitate','Actualizare'), 
      array('P1','C1','CL1','2','2','Ct1','A1'), 
      array('P2','C2','CL2','2','2','Ct2','A2'), 
     ); 

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

    foreach ($list as $fields) { 
    fputcsv($fp, $fields); 
    } 

    fclose($fp) 
    ?> 
+0

對不起,但這遠不是我需要再次閱讀我的代碼。 – adi 2013-02-26 19:17:12

+0

你需要指定你的csv中的每行作爲數組,或者你可以通過設置頭文件和使用implode()函數 – Shin 2013-02-27 04:09:13

+0

耶下載一個csv是的,但問題是我不能作爲數組作爲不同的行,只有所有行作爲一個數組。設法使用fwrite解決。 – adi 2013-02-27 07:08:30