2011-12-19 72 views
0

我已經試過我的darnest以避免問這個問題(我已經在論壇上看過並且嘗試了大量的例子),大部分工作讓我相信我錯過了一些東西。我有一個鏈接設置將我的表導出爲可下載的.csv文件。當我點擊鏈接時,代碼以csv格式轉儲表格,但不是將其作爲附件加載,而是僅以HTML格式顯示錶格的內容。使用php導出一個mysql查詢到一個可下載的.csv文件

-

<?php 

include('bikes.php'); //db connection settings 
if ($_GET['action'] == 'download') 
{ 
header('Content-Disposition: attachment; filename="downloaded.csv"'); 

$query = "SELECT * FROM bikes"; 

$export = mysql_query ($query) or die ("Sql error : " . mysql_error()); 

$fields = mysql_num_fields ($export); 

for ($i = 0; $i < $fields; $i++) 
{ 
    $header .= mysql_field_name($export , $i) . "\t"; 
} 

while($row = mysql_fetch_row($export)) 
{ 
    $line = ''; 
    foreach($row as $value) 
    {            
     if ((!isset($value)) || ($value == "")) 
     { 
      $value = "\t"; 
     } 
     else 
     { 
      $value = str_replace('"' , '""' , $value); 
      $value = '"' . $value . '"' . "\t"; 
     } 
     $line .= $value; 
    } 
    $data .= trim($line) . "\n"; 
} 
$data = str_replace("\r" , "" , $data); 

if ($data == "") 
{ 
    $data = "\n(0) Records Found!\n";       
} 

print "$header\n$data"; 

} 
exit(); 

php?> 

-

我的結果怎麼樣了作爲

A,B,C,d,A,B,C,d - 我不知道爲什麼當我點擊我的鏈接(download.php?action = download),這不會提示我將文件保存到我的硬盤驅動器,而不是隻顯示頁面上的信息。

任何幫助將不勝感激!在發送輸出前

+0

所以...我想通了,爲什麼出了20+的例子我想我無法下載工作。顯然你必須有一個空白的PHP文件。這意味着應該只有php代碼和html。只要我這樣做了,所有的標題功能都無法解決問題。感謝大家的幫助。 – snapplex 2011-12-22 02:04:50

回答

1

用途:

header('Content-Disposition: attachment; filename="downloaded.csv"'); 

參見:Create a CSV File for a user in PHP - 瞭解更多詳情。

+0

剛剛嘗試使用標題,但我仍然得到相同的結果。 :\ – snapplex 2011-12-20 09:08:14

+0

@snapplex閱讀編輯(添加一個鏈接到另一個問題已經問) – check123 2011-12-20 09:11:57

+0

附註:我覺得像一個mook。 – snapplex 2011-12-22 02:05:31

1

試試這個,對我的作品:

header("Content-Type: text/csv"); 
header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); 
header("Content-Transfer-Encoding: binary\n"); 
header('Content-Disposition: attachment; filename="downloaded.csv"');