PHP Excel导出仅显示MYsql表的最后一行

时间:2016-07-09 03:47:00

标签: php mysql arrays excel

我在使用模拟excel文件的PHP脚本从MySQL数据库导出数据时遇到问题。 数据仅导出MySQL表的最后一行。 我已经删除了代码以删除所有关系查找(因为有多个MySQL查询通过,这使得难以阅读)。 我知道我正在编写我的变量,所以只有最后一行选择可用于脚本但经过大量搜索后我似乎无法找到答案(我猜我需要将数据存储在数组中然后调用将数据导出为ex​​cel文件的代码中的数组。 所有帮助将不胜感激。 我的代码(砍下来的版本)是:

<?php
    // Apply server security settings and keep cookies
    // connecting to the server
    // selecting the appropriate database
    //storing and fetching user data

$generate_query = "SELECT * FROM main_report";

$generate_data = mysql_query($generate_query, $link);

while($report = mysql_fetch_array($generate_data))
            {   

            $reportnoout = "<td>".$report['report_number']."</td>";

            $incdateout = "<td>".$report['incident_time']."</td>";

            $siteout = "<td>".$site_data['site_name']."</td>";

            $deptout = "<td>".$dept_data['department_name']."</td>";

            $reportout = "  <td>".$report['report_type']."</td>";

            $superout = "<td>".$staff_data5['name']."</td>";

            $descout = "<td>".$report['detailed_desc']."</td>"; 

// Needs some form of array declaration here maybe? 

            }       
// filename for download
$filename = "test_data_" . date('Ymd') . ".xls";    
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename"); 
$test="<table><th>Report No.</th><th>Incident Date</th><th>Site</th><th>Department</th><th>Incident Type</th><th>Responsible Supervisor</th><th>Description</th><tr>";
$test2="$reportnoout $incdateout $siteout $deptout $reportout $superout $descout"; // This is not right either should probably be an array or not even here?
echo $test;
echo $test2; // This was a stop gap to at least see if some of the code worked
exit;
?>

非常感谢提前。

干杯 Jase

PS我通过在过去几天搜索网络来处理这段代码,然后把它放在一起,之前我从未处理过这种类型的东西(输出文件类型)

1 个答案:

答案 0 :(得分:1)

您的代码可以使用大量清理工具,但我会让您稍后解决,并专注于使其按预期工作。

您可以使用串联.=

来执行此操作
//start table string
$table = "<table><tr>
        <th>Report No.</th>
        <th>Incident Date</th>
        <th>Site</th>
        <th>Department</th>
        <th>Incident Type</th>
        <th>Responsible Supervisor</th>
        <th>Description</th><tr>";

$generate_query = "SELECT * FROM main_report";  
$generate_data = mysql_query($generate_query, $link);    

while($report = mysql_fetch_array($generate_data))
{   
    //add row to string using concatenation
    $table .= "<tr><td>{$report['report_number']}</td>
               <td>{$report['incident_time']}</td>
               <td>{$site_data['site_name']}</td>
               <td>{$dept_data['department_name']}</td>
               <td>{$report['report_type']}</td>
               <td>{$staff_data5['name']}</td>
               <td>{$report['detailed_desc']}</td></tr>";
}       

//close table
$table .="</table>";

// filename for download
$filename = "test_data_" . date('Ymd') . ".xls";    
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename"); 

echo $table;