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

I am having problems exporting data from a MySQL database using a PHP script that mimes an excel file. The data is only exporting the last row of the MySQL table. I have chopped the code down to remove all the relational look ups (as there are multiple MySQL queries through out which make it hard to read). I understand I am over writing my variables so only the last row of selected is available to the script but after a lot of searching I still cant seem to find an answer (I am guessing I need to store the data in an array then call that array within the code that exports the data as an excel file). All help will be greatly appreciated. My code (chopped down version) is:

    // 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/");
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

Many thanks in advance.

Cheers Jase

PS I worked this code up by searching the web over the last few days and put it together from that prior to this I have never worked on this type of stuff (outputting file types)

2016/07/09 03:47
  • excel
  • php
  • mysql
  • arrays
  • 点赞
  • 收藏
  • 回答