2013-02-21 28 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