sql >> Databáze >  >> RDS >> Mysql

rekurzivní funkce pro získání všech podřízených kategorií

Těžko jsem se snažil zjistit vaši funkci. Myslím, že tohle udělá, co chceš. Získá všechny potomky kategorie s ID $id a také jejich potomky (čímž získáte celou podkategorii, efekt podkategorie, který jste chtěli).

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

Tato funkce vrátí:

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

V podstatě vrací pole s ID potomka a pole obsahující ID jeho potomků. Doufám, že vám to nějak pomůže.



  1. Jak převést typ sloupce varchar na typ data bez ztráty dat

  2. Mohou být zástupné znaky použity v názvech tabulek pro GRANT v MySQL

  3. Velké objekty nelze použít v režimu automatického potvrzení

  4. Chyba nesprávného řetězce při přidávání emotikonů do databáze prostřednictvím formuláře