千家信息网

php如何实现从数据库查询结果生成树形列表

发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章给大家分享的是有关php如何实现从数据库查询结果生成树形列表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体分析如下:本代码可以从数据库读取数据生成一个类似于wi
千家信息网最后更新 2025年11月09日php如何实现从数据库查询结果生成树形列表

这篇文章给大家分享的是有关php如何实现从数据库查询结果生成树形列表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体分析如下:

本代码可以从数据库读取数据生成一个类似于windows的资源管理器的树形列表

', $name ? " name=\"$name\"" : '', $icon, $width, $height);}function display_directory($parent,$showdepth=0,$ancestors=false){ global $child_nodes, $node_data, $last_child; reset($child_nodes[$parent]); $size = sizeof($child_nodes[$parent]); $lastindex = $size - 1; if (!$ancestors) { $ancestors = array(); } $depth = sizeof($ancestors); printf( '
', $parent, $showdepth > 0 ? 'show' : 'hide'); while (list($index, $node) = each($child_nodes[$parent])) { for ($i = 0; $i < $depth; $i++) { $up_parent = (int)$node_data[$ancestors[$i]][ 'parent']; $last_node_on_generation = $last_child[$up_parent]; $uptree_node_on_generation = $ancestors[$i]; if ($last_node_on_generation == $uptree_node_on_generation) { icon( "blank"); } else { icon( "line"); } } if ($child_nodes[$node]) { // has children, i.e. it is a folder $conn_icon = "plus"; $expand = true; } else { $conn_icon = "join"; $expand = false; } if ($index == $lastindex) { $conn_icon .= "bottom"; } elseif ($depth == 0 && $index == 0) { $conn_icon .= "top"; } if ($expand) { printf( "", $node); } icon($conn_icon, "connImg_$node"); if ($expand) { print( ""); } $icon = $node_data[$node][ 'icon']; if (!$icon) { $type = $node_data[$node][ 'type']; $icon = $GLOBALS[ 'dirent_icons'][$type]; } icon($icon, "nodeImg_$node"); $name = $node_data[$node][ 'name']; printf( '?%s', -1, $name, 10); if ($child_nodes[$node]) { $newdepth = $showdepth; if ($newdepth > 0) { $newdepth--; } $new_ancestors = $ancestors; $new_ancestors[] = $node; display_directory($node, $newdepth, $new_ancestors); } } print( "");}function setup_directory($parent, $maxdepth){ global $dirent_icons, $child_nodes, $node_data, $last_child; $dirent_icons = sql_assoc('SELECT id,icon FROM dirent_types'); $query = 'SELECT id,parent,type,icon,name '. 'FROM directory '. 'ORDER BY parent,name'; $child_nodes = array(); $node_data = array(); $res = sql($query); while (list($id,$parent,$type,$icon,$name)=db_fetch_row($res)){ $child_nodes[(int)$parent][] = $id; $node_data[$id] = array( 'id' => $id, 'parent' => $parent, 'type' => $type, 'icon' => $icon, 'name' => $name); $last_child[(int)$parent] = $id; }}?>

感谢各位的阅读!关于"php如何实现从数据库查询结果生成树形列表"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0