如何在 html 和 php 中制作 PIVOT(Crosstab)

马克·C

如果有人能解决这个问题,这对我来说会有很大的帮助。我有一个 MySql 数据库表,它有以下记录:

student_id    subject_id    scores
s01           eng01         10.00
s01           math01        10.00
s01           science01     10.00
s01           physic01      10.00
s02           eng01         20.00
s02           math01        20.00
s02           science01     20.00
s02           physic01      20.00

我想以这样的方式在 html 和 php 中显示

student    eng01    math01    science01    physic01
s01        10       10        10           10
s02        20       20        20           20

我已经完成了不同的 sql 查询集以及 php 代码,但我仍然无法通过它。帮助将不胜感激

缺口

如果您事先知道所有主题名称,则可以使用CASE表达式创建数据透视表

SELECT student_id,
    MAX(CASE WHEN subject_id = 'eng01' THEN scores ELSE 0 END) AS eng01,
    MAX(CASE WHEN subject_id = 'math01' THEN scores ELSE 0 END) AS math01,
    MAX(CASE WHEN subject_id = 'science01' THEN scores ELSE 0 END) AS science01,
    MAX(CASE WHEN subject_id = 'physic01' THEN scores ELSE 0 END) AS physic01
FROM students
GROUP BY student_id

输出(对于您的样本数据)

student_id  eng01   math01  science01   physic01
s01         10      10      10          10
s02         20      20      20          20

如果您不知道所有主题名称,您可以使用此查询来获取列表:

SELECT DISTINCT subject_id FROM students

然后在 PHP 中,您可以创建一个循环来根据 this 的结果构建查询,类似于(假设您在名为 的变量中具有该查询的结果$result)this。请注意,此代码还保存主题名称以供以后用于输出表的标题行。

$sql = 'SELECT student_id';
$headings = array();
while ($row = $result->fetch_array()) {
   $sql .= ", MAX(CASE WHEN subject_id = '{$row['subject_id']}' THEN scores ELSE 0 END) AS {$row['subject_id']}";
   $headings[] = $row['subject_id'];
}
$sql .= ' FROM students GROUP BY student_id';
// run query

要将这些数据输出到 HTML 表中,您可以使用类似这样的代码。我再次假设查询的输出在$result

echo "<table>\n<thead><tr><th>Student ID</th><th>" . implode('</th><th>', $headings) . "</th></tr></thead>\n<tbody>";
while ($row = $result->fetch_array()) {
    echo "<tr><td>{$row['student_id']}</td>";
    foreach ($headings as $h) {
        echo "<td>{$row[$h]}</td>";
    }
    echo "</tr>\n";
}
echo "</tbody></table>\n";

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在html和css中制作网格

来自分类Dev

PHP和HTML:如何在串联的PHP字符串var中包含.php

来自分类Dev

如何在fancybox和videoJS中制作响应式html5视频

来自分类Dev

如何在 HTML 和 CSS 中制作弯曲形式的文本输入?

来自分类Dev

如何在php中制作Laser fiche报价页(记录、更新、删除和列表)

来自分类Dev

如何在html中制作此形状?

来自分类Dev

如何在HTML中制作装饰器?

来自分类Dev

如何在html中制作此形状?

来自分类Dev

如何在html中制作此形状?

来自分类Dev

如何在PHP中制作秒表

来自分类Dev

如何在php中制作向导?

来自分类Dev

如何在PHP的HTML页面中动态更改登录和注销链接?

来自分类Dev

如何在Sublime Text 3中正确格式化/缩进HTML和PHP代码

来自分类Dev

如何在html5音频和视频播放器中回显php数组?

来自分类Dev

如何在URL中隐藏特定的文件扩展名(html和php)?

来自分类Dev

如何在HTML页面中使用php和mysql显示数据库中的图像

来自分类Dev

如何在PHP字符串和Heredoc语法中突出显示HTML语法?

来自分类Dev

如何在Sublime Text 3中正确格式化/缩进HTML和PHP代码

来自分类Dev

我将如何在php和html中引用此代码

来自分类Dev

如何在php和html中动态编码uri的最佳方法是什么?

来自分类Dev

如何在HTML和CSS3中使用背景色制作人像

来自分类Dev

如何在HTML和CSS中制作一条曲线线以连接两个节点?

来自分类Dev

如何在<?php?>中编写html代码

来自分类Dev

如何在PHP中解析HTML?

来自分类Dev

如何在html文件中调用php

来自分类Dev

如何在PHP和html之间显示用户名

来自分类Dev

如何在php和html上隐藏div

来自分类Dev

如何在包含文件中继承<?php,?>和<html>标记?

来自分类Dev

在PHP中制作适当的foreach HTML?

Related 相关文章

  1. 1

    如何在html和css中制作网格

  2. 2

    PHP和HTML:如何在串联的PHP字符串var中包含.php

  3. 3

    如何在fancybox和videoJS中制作响应式html5视频

  4. 4

    如何在 HTML 和 CSS 中制作弯曲形式的文本输入?

  5. 5

    如何在php中制作Laser fiche报价页(记录、更新、删除和列表)

  6. 6

    如何在html中制作此形状?

  7. 7

    如何在HTML中制作装饰器?

  8. 8

    如何在html中制作此形状?

  9. 9

    如何在html中制作此形状?

  10. 10

    如何在PHP中制作秒表

  11. 11

    如何在php中制作向导?

  12. 12

    如何在PHP的HTML页面中动态更改登录和注销链接?

  13. 13

    如何在Sublime Text 3中正确格式化/缩进HTML和PHP代码

  14. 14

    如何在html5音频和视频播放器中回显php数组?

  15. 15

    如何在URL中隐藏特定的文件扩展名(html和php)?

  16. 16

    如何在HTML页面中使用php和mysql显示数据库中的图像

  17. 17

    如何在PHP字符串和Heredoc语法中突出显示HTML语法?

  18. 18

    如何在Sublime Text 3中正确格式化/缩进HTML和PHP代码

  19. 19

    我将如何在php和html中引用此代码

  20. 20

    如何在php和html中动态编码uri的最佳方法是什么?

  21. 21

    如何在HTML和CSS3中使用背景色制作人像

  22. 22

    如何在HTML和CSS中制作一条曲线线以连接两个节点?

  23. 23

    如何在<?php?>中编写html代码

  24. 24

    如何在PHP中解析HTML?

  25. 25

    如何在html文件中调用php

  26. 26

    如何在PHP和html之间显示用户名

  27. 27

    如何在php和html上隐藏div

  28. 28

    如何在包含文件中继承<?php,?>和<html>标记?

  29. 29

    在PHP中制作适当的foreach HTML?

热门标签

归档