php mysqlは無制限の分類ツリー表示分類関係を実装します。

WBOY
リリース: 2016-06-13 12:36:25
オリジナル
1012 人が閲覧しました

無制限の分類は、主に上位レベルの分類の ID と分類パスを保存することによって実現されます。データの構造が単純なので、分類関係をツリー表示するには再帰を使って実装するしか考えられません。


無制限の分類は、主に上位レベルの分類の ID と分類パスを保存することによって実現されます。データの構造が単純なので、分類関係をツリー状に表示したいのですが、それを実装するには以下が自分で書いた分類データのテーブル構造とツリー表示関数です。間違っていますか?みんなが指摘してくれることを願っています。
テーブル構造: id フィールドはカテゴリ識別子、name フィールドはカテゴリ名、father_id フィールドは親カテゴリの ID、path フィールドはカテゴリ パス (カテゴリの祖先のコレクションを格納) 、 isdir はディレクトリであるかどうかを判断します (1 は Yes を意味し、0 は No を意味します)。

表示関数:

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

//$count は、分類レベル
sort_list($str,$fatherid,$count)
{
$rs = $this->sql->re_datas("select * from sort where Father_id = Fatherid"); 🎜>$num = $this->sql->sql_numrows();
$n = 1;
while(isset($rs[$i])) 🎜>{
$name = "";
for($n = 1 ; $n < $count ; $n )
{
$name.="│ "; }
if($i 1==$num)
{
$name.="lux─".$rs[$i][name]
}
else
{
$name.="pils─".$rs[$i][name]
}
if($rs[$i][isdir])
{
; $str.= "".$name."";
}
else
{
$str.= $name";
}
$temp = $count 1;
$str = $this->sort_list($str,$rs[$i][id],$temp);
$i;
}
return $str;
}


$this->sql オブジェクトが SQL 操作クラス オブジェクトである場合、re_datas() 関数は見つかった配列、sql_numrows( ) 関数はクエリされた番号を返します

メソッドの呼び出し: $sort_list = sort_list($sort_list,0,1);

上記は単なる私の個人的な考えです。アドバイスをいただけます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート