PHP - 我无法正确显示 xls 文件中的数据(从 mysql 导出))

标签 php mysql sql

我正在使用 php。我想将一些数据从mysql数据库导出到xls文件。

我在 mysql 数据库中的表答案:

表答案:

Id    Registration_id    Question_id    Answer
1     Reg01                 1            John
2     Reg01                 2            Smith
3     Reg01                 3            name@domain.com
4     Reg02                 1            Rachel
5     Reg02                 2            Smith
6     Reg02                 3            name2@domain.com 

我从下面的代码中获得的结果不是我期望的结果。标题显示正确,但答案显示在同一行...

姓名 名字 电子邮件 约翰·史密斯 name@domain.com 雷切尔·史密斯 name2@domain.com

我想要这个结果:

Name   SecondName  Email
John    Smith      name@domain.com  
Rachel  Smith      name2@domain.com

你能告诉我该怎么做吗?

谢谢。

这是代码:

$conn = mysql_connect("localhost","form","pass");
$db = mysql_select_db("form",$conn);


$query = "SELECT DISTINCT wp_events_question.question as qst, wp_events_answer.answer as ans
FROM wp_events_question, wp_events_answer 
WHERE wp_events_question.id = wp_events_answer.question_id";

$query2 = "SELECT wp_events_question.question as qst, wp_events_answer.answer as ans
FROM wp_events_question, wp_events_answer
WHERE wp_events_question.id = wp_events_answer.question_id and wp_events_detail.id = wp_events_attendee.event_id AND wp_events_attendee.id = wp_events_answer.attendee_id";

$result = mysql_query($query) or die(mysql_error()); //Headers  

 $result2 = mysql_query($query2) or die(mysql_error()); //Answers   

    //Headers
            $tbl= " <table border='1'>";

            $tbl= $tbl . "<tr height='50px'>";

            while($row = mysql_fetch_array($result)) 
            {       
                $tbl= $tbl . "<td WIDTH='50px' align='center'>".$row['qst']."</td>";                
            }   



   //Answers    
                $tbl = $tbl . "</tr>";  
                $tbl = $tbl . "<tr>";
            while($row2 = mysql_fetch_array($result2)) 
            {

                $tbl= $tbl . "<td WIDTH='50px' align='center'>".$row2['ans']."</td>";

            }
            $tbl = $tbl . "</tr>";
            $tbl = $tbl . "</table>";


            header("Cache-Control: no-stor,no-cache,must-revalidate");
            header("Cache-Control: post-check=0,pre-check=0", false);
            header("Cache-control: private");
            header("Content-Type: application/force-download");
            header("Content-Disposition: inline; attachment;filename=Reservations.xls");
            header("Content-Transfer-Encoding: binary");
            header("Pragma: no-cache");
            header("Expires: 0");

            print $tbl;

最佳答案

代码片段与您的示例数据没有相似之处。

您将每个结果写入一个新的 TD,但都在同一个 TR 中,这就是为什么它们都在同一行中。

更改:

        $tbl = $tbl . "<tr>"; 
        while($row2 = mysql_fetch_array($result2))  
        { 

            $tbl= $tbl . "<td WIDTH='50px' align='center'>".$row2['ans']."</td>"; 

        } 
        $tbl = $tbl . "</tr>"; 

        while($row2 = mysql_fetch_array($result2))  
        { 
            $tbl = $tbl . "<tr>"; 
            $tbl = $tbl . "<td WIDTH='50px' align='center'>".$row2['ans']."</td>"; 
            $tbl = $tbl . "</tr>"; 
        } 

但我不知道为什么你要执行相同的 SQL 查询两次...只需使用 $firstRow = true; 对一个查询运行一个循环即可在循环之前,还有一个 if ($firstRow) {//显示标题; $firstRow = false; } 作为循环中的第一个操作

关于PHP - 我无法正确显示 xls 文件中的数据(从 mysql 导出)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826362/

相关文章:

php - 如何使用 PHP 从具有其他列文本的表格中获取图像

php - MySQL:计算子级并获取父级行

Mysql 查询发布日期负 7 天

java - 将没有主键的 SQL View 映射到 JPA 实体

php - 排序多维数组的几个级别

php - 无法让 Xdebug 在 Windows 7 上运行

PHP 7 - 多个默认值

mysql - 如何在不选择的情况下为 SQL 查询部分创建别名

mysql - 如何检测MySQL表窗口中是否包含特定值

sql - SQL 查询中的多个嵌套 SELECT