使用PHP创建CSV下载链接

时间:2012-07-24 11:41:22

标签: php mysql csv

  

可能重复:
  Create a CSV File for a user in 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";
}
?>

我不知道的是如何从$query输出中生成CSV并触发下载。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

将内容类型更改为text / csv

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

将header()调用移到脚本的顶部。

并按照评论中的建议使用PDO或mysqli。