1

可能重复:
在 PHP 中为用户创建 CSV 文件

我正在寻找一种解决方案,从我的小项目的 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 并触发下载。

感谢您的任何帮助!

4

1 回答 1

2

将内容类型更改为 text/csv

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

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

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

于 2012-07-24T12:16:36.060 回答