ホームページ >バックエンド開発 >PHPチュートリアル >無限レベルmenuの実装_PHPチュートリアル
/* 多くの友人が無制限のレベル メニューについて質問しているのを見かけました (実際、理論上はまだレベルが存在しますが、結局のところ、レベルにはデータベース フィールドの種類などの都合のよい条件が適用されます)。 Boss ( Nagging が提供するコード) を使用して無制限のレベル メニューを作成しましたが、(視覚的に) 効果があまり良くないため、「深夜」を利用してこの「無制限のレベル メニュー」を作成しました。実際、その理由は非常に単純で、主にデータです。テーブルの設計と再帰的手法の使用 (時間があれば、中央値ソート手法を使用します)。以下にデータ構造の設計を示します。非常に単純です)、ここでは垂直点線 (Windows エクスプローラーの点線) を追加しませんでした。必要に応じて SQL ステートメントも修正しました。ご質問がございましたら、msn:banneryue@sina.com、QQ: 7665656、E_mail: yuepengfei@mail.banner.com.cn
明日 (もう今日ですね、笑) のテスト ページを提供します。みんな見に来てください (寮内でインターネットしかダイヤルできないのでIPアドレスは固定ではありません)
*/
/** 子ノード関数の再帰表示
*
*
* @param $SearchPattern 検索条件(っぽい)
* @param $BaseNum ノードの階層数
*/
Function listChildtree ($ Searchpattern, $ Basenum) { fullyデータベースに接続するためのハンドル= $ tree- fetch_array($ queryChild){// get child node "; (*) from test whereDepartmentId like '$ChildDepartment'";//子ノードの子ノードを検索 ql); "ta".trim($Result[0]); // テーブル ID を設定します
($ChildResult [ 0]<1){// 子ノードのノードが見つからない場合は、「-」のピクチャが表示されます
「腹筋」>=$Result[1]?>< ;/a>
}それ以外の場合は、「+」画像を見つけます
& lt; & lt; a Onclick = " = = = = $ Tableid ?>','=$TablePic?>')" style="cursor:hand"> font size="2" >=$Result[ 1]?>< ;/a>
ListChildTree($ChildDepartment,$BaseNum);//関数自体を再帰的に呼び出して他の子ノードを表示します
}//関数終了 ?>
< html>
require("do_mySql.php");
$Tree = new DB_Sql;
$Tree->connect();//连接数据库,可根据需要换成自己的代码
$Sql="select DepartmentId,DepartmentName from test where length(DepartmentId)=3";//提出最上层节点(祖宗节点),根据需要自己修改
$Result=$Tree->query_first($Sql);
?>
=$Result[1]?>
$FirstDepartment=$Result[0];
$BaseNum=strlen($FirstDepartment)/3;//计算层数,其实这个有点多余,因为其必为第一层
$SearchPattern=$FirstDepartment."___"; //设置查找条件
ListChildTree($SearchPattern,$BaseNum); //显示祖宗节点的孩子节点
?>
;
/ * テストテーブルが設計されているため、テーブル構造
の設計は非常に単純です:
CREATE TABLE test (
id mediaint(8) unsigned NOT NULL auto_increment, #serial番号
部門 ID varchar(100) NOT NULL default '', # ユニット コード
DepartmentName varchar(100) NOT NULL default '', #Unit name
KEY id (id)
)
ここではデータ挿入コードは与えません (書くのは簡単です、誰でも書き出せると思います)
データテーブルのルールは次のとおりです:
001 は最初のレベルです (999 が十分でない場合は、自分で追加してください)
001001 は最初の子ノードです001、001002 は 001 の 2 番目の子ノードです。
001001001 は 001001 の最初の子ノードです。以下同様です...
ここでは「祖先」 (001) を 1 つだけ設定しているため、プログラム内で直接呼び出します。必要に応じて自分で設定し、コードを変更するだけです。
それでは、ご質問がございましたら、お気軽にご相談ください。皆さんの仕事が素晴らしい一日になることをお祈りしています。
寝る前にタバコを吸いましょう!すごく疲れた! (webFtp を書いたばかりなので、必要な兄弟姉妹がいたらメールしてください)
*/
?>
http://www.bkjia.com/PHPjc/314993.html
www.bkjia.com
true