我正在寻找一个解决方案,从我的小项目的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并触发下载。
感谢您的帮助!
答案 0 :(得分:2)
将内容类型更改为text / csv
header("Content-type: text/csv");
将header()调用移到脚本的顶部。
并按照评论中的建议使用PDO或mysqli。