2012-07-24 79 views
0

可能重複:
Create a CSV File for a user in PHP創建一個CSV下載鏈接用PHP

我要尋找一個解決方案來創建從一個MySQL查詢CSV下載鏈接爲我的小項目。

基本上下載鏈接將在此格式:

http://localhost/vnodes/generateExcel.php?fromDate=2012-07-23&toDate=2012-07-24&location=1 

在我generateExcel.php將包含此:

<?php 

$fromDate = $_GET['fromDate']; 
$toDate = $_GET['toDate']; 
$location = $_GET['location']; 

include "connect.php"; 
$connect = mysql_connect($dbhost, $dbusername, $dbpassword) or die(mysql_error()); 
mysql_select_db($dbname) or die(mysql_error()); 
$query = mysql_query("SELECT * FROM `nodes` WHERE `dateIn` BETWEEN '$fromDate' AND '$toDate' AND partLocation = '$location' ORDER BY `dateIn` ASC") or die(mysql_error()); 

header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=report.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

while($result = mysql_fetch_array($query)) { 
    echo $result['dateIn'].",".$result['partNumber'].",".$result['serialNumber'].",".$result['4serialNumber'].",".$result['status'].",".$result['operator']."\n"; 
} 
?> 

我不知道事情是如何使一個CSV輸出$query輸出並觸發下載。

謝謝你的幫助!

+1

請不要在新代碼中使用'mysql_ *'函數。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是很好的PDO教程](http://goo.gl/vFWnC)。 – ManseUK 2012-07-24 11:42:54

+0

謝謝@ManseUK。將嘗試讀取PDO和MySQLi。關於可能的重複,是的,可能是這種情況,但我不太明白它的意思。基本上我想從'$ results'數組中創建一個CSV,我不知道該怎麼做。 – JudeJitsu 2012-07-24 11:44:07

+0

我嘗試過從第一條評論實施鏈接,編輯我的帖子,但下載的CSV文件包含「SCREAM」錯誤。我究竟做錯了什麼? – JudeJitsu 2012-07-24 11:54:49

回答

2

更改內容類型爲text/CSV

header("Content-type: text/csv"); 

並移動頭()調用腳本的頂部。

並按照註釋中的建議使用PDO或mysqli。