[英]Flat table to tree view
我在數據庫中獲得了一個Post表(對於基於樹的論壇系統),所有帖子都是Topic的子級 (您可以在示例中看到topicId為79的字段),我要做的是選擇所有具有topicId 79的行(在此示例中)
所以現在,我收到了主題79的所有帖子,您可以看到parentId字段。 如果該帖子回復主題,則該值為NULL,否則,該帖子是另一個帖子的子代,因此具有父帖子的ID。
現在,正如我所說的,我擁有主題#79的所有行,並且需要以樹狀視圖顯示它們
最好的方法是什么?
順便說一句,我正在使用由Yii Framework提供支持的PHP + MySQL(並且不想使用zii小部件)
謝謝您的幫助
答案是遞歸。
1.首先,有一個循環,獲取所有“父母帖子”(parentId = null的帖子)。
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++);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.