将MYSQL查询中的行显示为HTML表中的列

时间:2014-02-23 02:24:09

标签: php html mysql

我有一个MYSQL数据库,可以为每个学期的学生存储水平。

我很好创建php页面,查询等,并且非常熟悉创建表所需的hmtl / css。我对数组有基本的了解。

我在努力学习的方法是如何将每个学生的数据显示在html表格的列中。

以前我在数据库中的评估表有多个列 - aut7,spr7,sum7等,因此很容易在html表中显示。然而,我一直在努力使数据库更有效,所以我现在将每个评估存储为一个单独的记录 - 数据库设置得好得多,但却引发了以下问题(我缺乏知识!!)

我的意思的一个简单例子如下:

这是查询的结果:

student_id   term    level
  1          aut7      3b
  1          spr7      3a
  1          sum7      4c
  2          aut7      3a
  2          spr7      4c
  2          sum7      4b

我想在html / css表中显示如下:

 Student      Aut7      Spr7     Sum7
   1           3b        3a       4c
   2           3a        4c       4a

如果有人可以帮助PHP / MySQL的相对新手,我将非常感激。

1 个答案:

答案 0 :(得分:0)

您需要透视结果。不幸的是,MySQL确实有PIVOT但您可以构建这样的查询来实现相同的结果

SELECT student_id, 
  MAX(CASE WHEN term = 'aut7' THEN level END) Aut7,
  MAX(CASE WHEN term = 'spr7' THEN level END) Spr7,
  MAX(CASE WHEN term = 'sum7' THEN level END) Sum7
FROM student_terms
GROUP BY student_id

请参阅SQL Fiddle

中的演示