ホームページ  >  記事  >  バックエンド開発  >  PHP無限分類メニューサンプルプログラム_PHPチュートリアル

PHP無限分類メニューサンプルプログラム_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:48:28865ブラウズ

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 について詳しく知りたいと思います。 、ページコードを見てみましょう:

コードは次のとおりです コードをコピー

/**************************************
ページ: menu.php
著者: www.bKjia.c0m
機能: データベース操作を定義し、メニューリストクラスを生成します

******************************************/
クラスメニュー{
//コンストラクターを作成します。その機能はデータベースに接続し、対応するデータベースを選択することです
パブリック関数 __construct(){
$dbhost = "ローカルホスト";
$dbuser = "ルート";
$dbpassword = "7529639";
$dbname = "メニュー";
mysql_connect($dbhost,$dbuser,$dbpassword) または die("error!");
mysql_query("SET NAMES 'GBK'");
mysql_select_db($dbname);
}

//SQL文関数を実行
プライベート関数クエリ($sql){
return mysql_query($sql);
}

// bKjia.c0m 結果セット配列関数を取得します
プライベート関数loop_query($result){
return mysql_fetch_array($result);
}
//リストメニューリスト関数
パブリック関数 menulist(){
$sql="パスによるリストの順序から * を選択";
$result=$this->クエリ($sql);
while($rows=$this->loop_query($result)){
if(substr_count($rows['path'],',')>2){
for($i=0;$i<(substr_count($rows['path'],',')-2);$i++)
エコー「 」;
}
echo $rows['name'].'
';
}
}

//デストラクターを作成します。その機能はデータベース接続を閉じることです
パブリック関数 __destruct(){
return mysql_close();
}
}
$db=new menu();//インスタンスを生成
$db->menulist();//メソッドを呼び出してメニューを生成します
?>

ヒント: これにより、無制限の分類メニューが生成されます。もちろん、メニューに適用されるだけでなく、製品の分類やバックグラウンドでの追加、削除、変更、チェックにも適用できます。あなた自身の少しの努力をしてください

原文引用元:04ie.com

www.bkjia.com本当http://www.bkjia.com/PHPjc/632776.html技術記事 PHP プログラムを実行していると、複数レベルのメニューを設計するプログラミングによく遭遇します。たとえば、一般的な 3 レベルのメニューでは、最初に製品の第 1 レベルの分類が表示され、次に第 2 レベルの分類が表示され、最後に... が表示されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。