使用php从mysql结果创建csv文件?

时间:2013-02-21 15:18:53

标签: php mysql export-to-csv

所以我试图制作一个.csv文件,我将在下载之后,但问题是这些行没有正确排列。 我正在使用fputcsv。

$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语句,它从不同的查询中获取变量,我在互联网上找不到符合我需要的PHP代码。我尝试了几种方法来尝试制作它工作但没有。 我尝试过$tot不同的方法,但没有一个工作,要么是$ tot。= csv文件应该有类似的东西。

  • 标题行,
  • 第1行,
  • 第2行,

但我的csv显示为

  • 标题行,
  • “线路1,线路2,等等”

我尝试过$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);

它写得就像它应该的那样。

2 个答案:

答案 0 :(得分: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)
   ?>

答案 1 :(得分:0)

尝试在调用fopen()之前添加此行:ini_set(“auto_detect_line_endings”,true)