本文实例讲述了php从数据库查询结果生成树形列表的方法。具体分析如下:
本代码可以从数据库读取数据生成一个类似于windows的资源管理器的树形列表
?php/* Here are the database definitions (for Solid) that i use in this code. * It should not be hard to adapt it to another database.CREATE TABLE dirent_types ( id INTEGER NOT NULL, icon VARCHAR(50), name VARCHAR(50), PRIMARY KEY(id)INSERT INTO dirent_types VALUES(1, folderclosed , Directory INSERT INTO dirent_types VALUES(2, document , File CREATE TABLE directory ( id INTEGER NOT NULL, parent INTEGER REFERENCES directory(id), name VARCHAR(200), icon VARCHAR(50), type INTEGER REFERENCES dirent_types(id), url VARCHAR(200), PRIMARY KEY(id)DROP INDEX directory_idx;CREATE UNIQUE INDEX directory_idx ON directory(parent, name);CREATE SEQUENCE dirent_id; CREATE PROCEDURE insert_dir_entry (name VARCHAR, parent INTEGER, type INTEGER) RETURNS(id INTEGER)BEGIN EXEC SQL WHENEVER SQLERROR ABORT; EXEC SEQUENCE dirent_id.NEXT INTO id; EXEC SQL PREPARE c_insert INSERT INTO directory (id, parent, type, name) VALUES(?, ?, ?, ?); EXEC SQL EXECUTE c_insert USING (id, parent, type, name); EXEC SQL DROP c_insert;CALL insert_dir_entry( My Computer , NULL, 1);CALL insert_dir_entry( Network Neighbourhood , NULL, 1);CALL insert_dir_entry( lucifer.guardian.no , 2, 1);CALL insert_dir_entry( rafael.guardian.no , 2, 1);CALL insert_dir_entry( uriel.guardian.no , 2, 1);CALL insert_dir_entry( Control Panel , NULL, 1);CALL insert_dir_entry( Services , 6, 1);CALL insert_dir_entry( Apache , 7, 2);CALL insert_dir_entry( Solid Server 2.2 , 7, 2);function icon($icon, $name = , $width = 0, $height = 0) { global $DOCUMENT_ROOT; $icon_loc = /pics/menu $file = $DOCUMENT_ROOT$icon_loc/$icon.gif if (!$width || !$height) { $iconinfo = getimagesize($file); if (!$width) { $width = $iconinfo[0]; if (!$height) { $height = $iconinfo[1]; printf( img%s border=0 align=top src= /pics/menu/%s.gif . width= %d height= %d , $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( p id= node_%d >总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
php针对错误处理的常用技巧
php结合html5的websocket通讯的使用方法
php图片上传及javascript插件的使用
以上就是php实现将数据库查询的结果生成树形列表的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答