Mysql
 sql >> Datenbank >  >> RDS >> Mysql

rekursive Funktion, um alle untergeordneten Kategorien zu erhalten

Es fiel mir schwer, Ihre Funktion herauszufinden. Ich denke, das wird tun, was Sie wollen. Es ruft alle untergeordneten Elemente einer Kategorie mit der ID $id und auch deren untergeordnete Elemente ab (wodurch der gesamte Unterkategorie-, Unterunterkategorie-Effekt erzielt wird, den Sie wollten).

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;
}

Diese Funktion gibt zurück:

$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
);

Es gibt im Wesentlichen ein Array mit der ID des untergeordneten Elements und ein Array mit den IDs seiner untergeordneten Elemente zurück. Ich hoffe, das ist hilfreich.