我有一个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的相对新手,我将非常感激。
答案 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
中的演示