2015-10-14 16 views
0

將文件導出到csv時,我的內容被添加到列名稱的同一行中。我希望下面的內容到各自的列。代碼如下當從數據庫導出文件到csv時,它會在表格列名稱的行中顯示內容

 <?php 
     $filename = "file.csv"; 
     $fp = fopen('php://output', 'w');   
     header('Content-type: application/csv'); 
     header('Content-Disposition: attachment; filename='.$filename); 
     $headerLine = 'Sr. No,Name,DOB,Address'; 
     fwrite($fp, $headerLine); 
     $query = "select * from registratin"; 
     $result = mssql_query($query); 
     $i = 1; 
     while($row = mssql_fetch_row($result)) { 
      $row = array_merge(array($i), $row); 
      fputcsv($fp, $row); 
      $i++; 
     } 

     ?> 
+1

這是什麼數據庫?你的代碼說mssql你已經標記了mysql? – e4c5

+0

在頭文件後面寫一個新行:'fwrite($ fp,$ headerLine。PHP_EOL);' –

回答

0

您可以通過以下簡單的做,沒有必要到陣列合併

<?php 
     $filename = "file.csv"; 
     $fp = fopen('php://output', 'w');   
     header('Content-type: application/csv'); 
     header('Content-Disposition: attachment; filename='.$filename); 
     $headerLine = 'Sr. No,Name,DOB,Address'; 
     fputcsv($fp, explode(",",$headerLine); // adding heading 
     $query = "select * from registratin"; 
     $result = mssql_query($query); 
     $i = 1; 
     while($row = mssql_fetch_row($result)) { 
      //$row = array_merge(array($i), $row); ***no need*** 
      fputcsv($fp, $row); 
      $i++; 
     } 
     fclose($fp); 

?> 
+0

添加頭文件我使用fwrite($ fp,$ headerLine),因爲我不想讓fieldname Sr. No像「Sr. No」。但因爲我使用fwrite,我的內容就在列名 –

+0

的同一行旁邊,現在你的問題已經解決了 - 你想要達到的解決方案就是做同樣的事情 –

0

其更好地利用mysqli,這是一個簡單的方式來獲得工作完成。 並在select只選擇需要的列。

header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=data.csv'); 
$output = fopen('php://output', 'w'); 

fputcsv($output, array('SR No', 'Name','DOB','Address')); 

$conn = mysqli_connect('localhost', 'root', 'password',"database"); 
$rows = mysqli_query($conn,'SELECT * from registration'); 

while ($row = mysqli_fetch_assoc($rows)) 
    fputcsv($output, $row); 
相關問題