ホームページ > バックエンド開発 > PHPチュートリアル > データベース分類クエリに関連する問題

データベース分類クエリに関連する問題

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

データベース分類クエリ問題
には分類テーブルがあり、その構造は次のとおりです
id 名前 父親 categoryorder
1A0A
2 B 0
3 A.1 1
4A.2 1
5 A.1.a 3
6 A.1.b 3
7 B.1 2

categoryorderを使ってカテゴリを並べ替えてツリー状に表示したいのですが、どうやって設計すればよいでしょうか?

--A.1
----A.1.a
----A.1.b
--A.2
B
--B.1
PHPではどのように実装すればよいでしょうか?
------解決策----------------------
LZ 「分類テーブル」がデータベーステーブルの場合の場合は、SQL で処理を行うことを検討する必要があります。
あなたのアイデアに従って、「シリーズ」と呼ばれるフィールドを作成し、グループごとの順序を使用してこのシリーズに基づいて並べ替えることができます

<br />
SELECT * from good<br />
ORDER BY series<br />
ログイン後にコピー


-----解決策--------------------------------
<br />
<br />
static function GetTree($depth, $parentID, $nodeID)<br />
    {<br />
<br />
        $str = "";<br />
        $nodes = D_node::GetListAll("where parentid=" . $parentID . "", "orderflag desc");<br />
        if (count($nodes) > 0) {<br />
            foreach ($nodes as $node) {<br />
                $str .= self::GetPrefixString($depth) . $node->nodename;<br />
                $str .= self::GetTree($depth + 1, $node->id, $nodeID);<br />
            }<br />
        }<br />
<br />
<br />
        return $str;<br />
    }<br />
    static function GetPrefixString($depth)<br />
    {<br />
<br />
        $str = "--";<br />
        for ($i = 0; $i < $depth; $i++) {<br />
            $str .= "--";<br />
<br />
        }<br />
        return $str;<br />
    }<br />
ログイン後にコピー

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