在 HTML 相似行中分组 MySQL table
Grouping together in HTML similar rows of a MySQL table
我有一个 MySQL 数据库 table,我在其中保存来自用户的反馈(列“feed”)。
他们都可以提问 (type = que, with ref = 0) 并回复 (type = ans)发布的问题。
“ref”列显示他们所指问题的“id”:
id username feed type ref
1 mr_x question_1 que 0
2 mrs_y question_2 que 0
3 mr_z answer_to_2 ans 2
4 mr_z answer_to_1 ans 1
5 mr_x answer_to_2 ans 2
现在,我正试图在 HTML 中显示此 table。我想把所有相同'ref'的答案放在一起,并在他们所指的问题下方显示。
使用 ORDER 的 PHP 查询,例如:
"SELECT * FROM feedback ORDER BY ref ASC";
在这里不起作用。
我在 HTML 中想要的输出是:
mr_x question_1 que 0
mr_z answer_to_1 ans 1
mrs_y question_2 que 0
mr_z answer_to_2 ans 2
mr_x answer_to_2 ans 2
我可能需要计算所有具有相同“ref”的答案,并构建一个 rowspan。
有人遇到过类似的挑战吗?
以下查询将 return 由父 id
排序的 feedback
table 中的记录,父线程中的记录出现在子线程之前。
SELECT f.*
FROM feedback f
ORDER BY CASE WHEN f.ref = 0 THEN f.id ELSE f.ref END,
f.id
解释:
ORDER BY
使用两个排序标准。首先,它按 id
排序,当 ref
为零时(表示父线程),或 ref
不为零时表示子线程。然后,为了将父线程放在子线程之前,它按 id
排序。这是有效的,因为父线程总是有一个 id
小于它的子线程。
我有一个 MySQL 数据库 table,我在其中保存来自用户的反馈(列“feed”)。 他们都可以提问 (type = que, with ref = 0) 并回复 (type = ans)发布的问题。 “ref”列显示他们所指问题的“id”:
id username feed type ref
1 mr_x question_1 que 0
2 mrs_y question_2 que 0
3 mr_z answer_to_2 ans 2
4 mr_z answer_to_1 ans 1
5 mr_x answer_to_2 ans 2
现在,我正试图在 HTML 中显示此 table。我想把所有相同'ref'的答案放在一起,并在他们所指的问题下方显示。
使用 ORDER 的 PHP 查询,例如:
"SELECT * FROM feedback ORDER BY ref ASC";
在这里不起作用。
我在 HTML 中想要的输出是:
mr_x question_1 que 0
mr_z answer_to_1 ans 1
mrs_y question_2 que 0
mr_z answer_to_2 ans 2
mr_x answer_to_2 ans 2
我可能需要计算所有具有相同“ref”的答案,并构建一个 rowspan。 有人遇到过类似的挑战吗?
以下查询将 return 由父 id
排序的 feedback
table 中的记录,父线程中的记录出现在子线程之前。
SELECT f.*
FROM feedback f
ORDER BY CASE WHEN f.ref = 0 THEN f.id ELSE f.ref END,
f.id
解释:
ORDER BY
使用两个排序标准。首先,它按 id
排序,当 ref
为零时(表示父线程),或 ref
不为零时表示子线程。然后,为了将父线程放在子线程之前,它按 id
排序。这是有效的,因为父线程总是有一个 id
小于它的子线程。