PHP プログラムを実行していると、複数レベルのメニューを設計するプログラミングに遭遇することがよくあります。たとえば、一般的な 3 レベルのメニューでは、最初に製品の第 1 レベルの分類が表示され、次に第 2 レベルの分類が表示され、最後に製品が表示されます。これは 3 レベルの構造を構成しており、バックグラウンドで適切な分類メニューのサポートがないと、データを変更するのが非常に面倒になります。
私は最近コンテンツ管理プロジェクトに取り組んでいたのですが、クライアントは複数レベルの分類を主張しました。実際、bKjia.c0m のバックエンドなど、多くのオープンソース バックエンドには無制限の分類レベルがあり、これらのカテゴリのデータは次のとおりです。ここでは、ソース コードを使用して関連付けを行うだけです。
これらの関連データは複雑ではありません。実際、優れたバックエンド設計には無制限のカテゴリが必要です。このように、機能が同じである限り、個別にプログラムする必要はありません。バックエンドで。これにより、機能の共有が実現されます。
より単純な無限レベルの分類メニュー コード。このプログラムの重要な点は、データ テーブルの設計が単純な SQL ステートメントでリストできることです。このデータテーブルがどのように設計されているかを参照してください:
データベースのフィールドはおおよそ次のとおりです:
———————————————————————————–
ID番号
fid親カテゴリ番号
名前カテゴリ名
パス分類パスは、ID をノードとして、,1,2,3,4,
のような文字列を形成します
—————————————————————————-
次のようなデータが想定できます
ID FID 名パス
———————————————-
1 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、
———————————————-
実装されるすべての PHP コードはクラスにカプセル化されます。必須ではありませんが、OO について詳しく知りたいと思います。 、ページコードを見てみましょう:
コードは次のとおりです | コードをコピー |
/************************************** ******************************************/ //SQL文関数を実行 // bKjia.c0m 結果セット配列関数を取得します //デストラクターを作成します。その機能はデータベース接続を閉じることです |
ヒント: これにより、無制限の分類メニューが生成されます。もちろん、メニューに適用されるだけでなく、製品の分類やバックグラウンドでの追加、削除、変更、チェックにも適用できます。あなた自身の少しの努力をしてください
原文引用元:04ie.com