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

すべての子カテゴリを取得する再帰関数

    私はあなたの機能を理解しようとするのに苦労しました。私はこれがあなたが望むことをするだろうと思います。 ID $ idのカテゴリのすべての子とその子を取得します(したがって、必要なサブカテゴリ全体、サブサブカテゴリの効果を取得します)。

    function categoryChild($id) {
        $s = "SELECT ID FROM PLD_CATEGORY WHERE PARENT_ID = $id";
        $r = mysql_query($s);
    
        $children = array();
    
        if(mysql_num_rows($r) > 0) {
            # It has children, let's get them.
            while($row = mysql_fetch_array($r)) {
                # Add the child to the list of children, and get its subchildren
                $children[$row['ID']] = categoryChild($row['ID']);
            }
        }
    
        return $children;
    }
    

    この関数は次を返します:

    $var = array(
            'categoryChild ID' => array(
                    'subcategoryChild ID' => array(
                            'subcategoryChild child 1' => array(),
                            'subcategoryChild child 2' => array()
                    )
            ),
            'anotherCategoryChild ID' => array() # This child has no children of its own
    );
    

    基本的に、子のIDを含む配列と、その子のIDを含む配列を返します。これがお役に立てば幸いです。



    1. テーブル式の基礎、パート13 –インラインテーブル値関数、続き

    2. postgresフロントエンドでタブを指定する方法COPY

    3. 投稿とコメントのmysql構造

    4. mysqlの列の下部に合計を表示します