sql >> データベース >  >> RDS >> Mysql

再帰を使用してナビゲーションを構築する

    これが再帰の例です。

    function buildNavigation($items, $parent = NULL)
    {
        $hasChildren = false;
        $outputHtml = '<ul>%s</ul>';
        $childrenHtml = '';
    
        foreach($items as $item)
        {
            if ($item['parent'] == $parent) {
                $hasChildren = true;
                $childrenHtml .= '<li>'.$item['category_name'];         
                $childrenHtml .= buildNavigation($items, $item['category_id']);         
                $childrenHtml .= '</li>';           
            }
        }
    
        // Without children, we do not need the <ul> tag.
        if (!$hasChildren) {
            $outputHtml = '';
        }
    
        // Returns the HTML
        return sprintf($outputHtml, $childrenHtml);
    }
    
    print buildNavigation($items);
    

    そのスクリプトは次の出力を生成します:

    <ul>
        <li>Menu 1</li>
        <li>Menu 2
            <ul>
                <li>Sub Menu 2.1</li>
                <li>Sub Menu 2.2</li>
                <li>Sub Menu 2.3
                    <ul>
                        <li>Sub Menu 2.2.1</li>
                        <li>Sub Menu 2.2.2</li>
                        <li>Sub Menu 2.2.3</li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>Menu 3</li>
    </ul>
    


    1. ステートメントのトリガー内でステートメントの影響を受ける行数を取得する方法

    2. MariaDBで数値を含まない値を取得する方法

    3. SQLINSERTINTO…SELECTの例

    4. SSISのマージ結合変換とルックアップ変換の違いは何ですか?