根据它的上下文对MySQL结果进行排序

时间:2010-02-05 21:57:04

标签: php mysql sorting

我正在尝试使用PHP和MySQL创建嵌套注释系统。但是我被困了

  • 我的数据库结构是id,body,time,reply和depth。
  • 常规评论的reply字段将为“0”。如果它回复另一个,它将对应于它回复的评论的id
  • depth表示距离最高父母
  • 有多深

所以如果这是我桌子的内容......

+------+-------------+--------+---------+---------+
|  id  |  body       |  time  |  reply  |  depth  |
+------+-------------+--------+---------+---------+
|   1  |  Some msg1  |   1    |    0    |    0    |
|   2  |  Some msg2  |   2    |    0    |    0    |
|   3  |  aReply1    |   3    |    1    |    1    |
|   4  |  aReply2    |   4    |    1    |    1    |
|   5  |  aReply21   |   5    |    3    |    2    |
+------+-------------+--------+---------+---------+

它会像这样......

- (1) Some msg1
-- (3) aReply1
--- (5) aReply21
-- (4) aReply2
- (2) Some msg2

我希望有可能使用这种方法,它超出了我的逻辑。

1 个答案:

答案 0 :(得分:1)

如果你不能改变表结构,你可以只获取所有行(按时间从表中选择*),然后使用PHP生成树。

对于树存储,我建议使用嵌套集算法。