我的数据库中有一个Post表(用于我的基于树的论坛系统) 所有帖子都是主题的子项(您可以在我的示例中看到字段topicId为79) 我所做的是选择所有具有topicId 79的行(在此特定示例中)
所以现在,我收到了主题#79的所有帖子 你可以看到字段parentId。如果Post回复主题,则值为NULL 否则,帖子是另一个帖子的孩子,所以它有父帖子的id。
现在,正如我所说,我已经拥有主题#79的所有行 我需要在树视图中显示它们
最好的方法是什么?
顺便说一下,我正在使用由Yii Framework提供支持的PHP + MySQL(并且不想使用zii小部件)感谢您的帮助
答案 0 :(得分:1)
答案是递归。
1.首先,有一个获取所有“父母帖子”的循环(一个父亲ID为空的帖子)。
2.对于每个“父母帖子”召唤一个递归函数,该函数将打印帖子的详细信息,并将为其子帖子召唤自己。
我没有检查代码,但这是帮助解决问题的主要概念。
function build_tree_child($post_id,$level=0)
{
$post = get_post_byId($post_id);
foreach($i = 0; $i <$level;$i++) echo " "; //Simple trick to make it LOOK like a tree
echo $post['title'];
$q = mysql_query("SELECT * FROM posts WHERE parentId='$post_id'");
while($childs = mysql_fetch_array($q))
build_tree_child($child['id'] , $level++);
}