本文實例講述了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教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答