问题1
   回答1
       回答1.1
       回答1.2
   回答2
       回答2.1
       回答2.2
......
记录形式是 
问题 回答(其他字段略)
<?php
function search($id){
    $sql = "select parent_id from table where id='$id'";
    $quy = mysql_query($sql);
    while($value = mysql_fetch_array($quy) ){
       $space. = "&nbsp;&nbsp;";
   echo "<tr><td>".$space.$id."内容为".$value[parent_id]."</td></tr>";
   search($value[parent_id]);
    } 
}
?>
字段的运用可能跟你说的不大一样,但大概就是parent_id就是回复,id就是被回复的那个。
$space的作用是起到有内缩的效果。
初略写了一下,你再自己调试一下。

解决方案 »

  1.   

    这种方式之所以PHP论坛都不用,可能就是因为树状查询非常消耗资源
      

  2.   

    这种方式之所以PHP论坛都不用,可能就是因为树状查询非常消耗资源==============
    是呀。一般要用递归。听说安然论坛是这样还做得不错。可以看看。
      

  3.   

    很少见树类php论坛。似曾相识的问题。以前唠叨给我过详细和经典的回答,有两种方法,不过一下子记不起来了。是关于我的无限子分类的问题。楼主你要做成这样的,你有没有考虑编辑的问题?我想如果你考虑这个的话,估计就不会再做树型的了。比如:如果你删了一个主题下面的一篇回复,那该回复下面的无数子回复怎么进行删除?
      

  4.   

    呵呵,随便说说其实这样的问题就是牺牲空间来获得效率的问题,再加上平衡数据 添加,删除,修改,查看,列表各个业务的资源消耗。
    对于留言,论坛等,一般用户的使用情况基本上是 查看,列表最多。添加一般, 修改,删除最少。那么问题就主要出在优化查看帖子,搜索,分类列表上。我们可以平衡各个业务的资源消耗量,
    比如增加一些标记位的冗余,便于查看,搜索,列表等。至于楼主所说类似无限分类这样的问题,在解决上可以在数据表中增加类似于
    深度,索引 等字段
    比如
    深度 为3 时   父id = 10, 祖父id=1可以如下记录
    id 100
    父id 10
    深度 3
    索引 1,10
    再来看看大多数论坛使用时的情况,
    一般上限是帖子数量为10W级,记录总数为100W级。
    并且对于用户操作不存在批量删除,移动等操作,因此对于增加的冗余字段不会经常的被改变,也就不会有太多的消耗。先到这里,走也。
      

  5.   

    每个主题再加一个字段 pathpath 的值是自动计算的。path = Parent.Path + ',' + id;

      id = 1 ,path = 1,
         |
         |-- id= 2 ,path = 1,2,
         |     |
         |     |-- id = 4 path = 1,2,4,
         |
         |---id= 6 ,path = 1,6,