まず、terry39 さんのアドバイスに感謝します。私は元旦に何もすることがないので、彼が話した原則を簡単に実装します。このプログラムの鍵は、データ テーブルの設計です。非常にユニークです。再帰を必要とせず、単純な SQL ステートメントに依存します。メニューをリストして、このデータ テーブルがどのように設計されているかを確認してください。
データベース フィールドは次のとおりです:
----------- --------------------- ---------------------------- ---------- ---
id Number
fid Number
fid 親カテゴリ番号
name カテゴリ名
path ID をノードとするカテゴリのパス、 ,1,2,3,4,
のような文字列を形成します。 ----------------------- -----------------------
それはできます次のデータがあるものとします。
id --------------------------------------。 ----
1 0 0 カテゴリ 1 ,1,
2 0 カテゴリ 2, 2, 分3 1 カテゴリ 1-1, 1,3,
4 1 カテゴリ 1-2, 1,4,
5 2 カテゴリ 2 -1、2、5、
6 4 カテゴリ 1-2- 1、1、4、6、
------------------------------------- --------------- ----------
今回は怠け者なので、幸いなことにコードは長くなく、すべてのコードを使用しています。はクラスにカプセル化されています (必須ではありませんが、OO にも慣れておきたいです、笑!)。ページのコードを見てみましょう:
コードをコピーします コードは次のとおりです:
/*************************************
ページ: menu.php
著者: Hui Boss
機能: 定義データベース操作とメニューリストクラスの生成
*****************************************/
class menu{
// コンストラクター、関数: データベース接続を作成し、対応するデータベースを選択します
public function __construct(){ B $ dbuser = " root";
$ dbpassword = "7529639";
$ dbname = "Menu";
mysql_connect ($ dbhost, $ dbuseword) or die ("error!") ; Q mysql_query (" Set names 'gbk' ");
mysql_select_db ($ dbname);
}
// SQL ステートメント関数を実行します
プライベート関数 query ($ SQL) {
Return mysql_query ($ SQL)
}
// 結果を取得します Set 配列関数
ループクエリ
」 $ sql = select * from path by path "; menu();//インスタンスを生成
$db->menulist();//メソッドを呼び出してメニューを生成
?>
http://www.bkjia.com/PHPjc/317785.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/317785.html
技術記事
まず、terry39 さんのアドバイスに感謝します。元旦には何もすることがないので、彼が言った原則を簡単に実装します。このプログラムの重要な点は、データ テーブルの設計が非常にユニークであることです。 、再帰なし、によると...