sql >> Base de Datos >  >> RDS >> Mysql

función recursiva para obtener todas las categorías secundarias

Tuve un tiempo difícil tratando de averiguar su función. Creo que esto hará lo que quieras. Obtiene todos los elementos secundarios de una categoría con ID $id, y también sus elementos secundarios (obteniendo así toda la subcategoría, el efecto de subsubcategoría que deseaba).

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

Esta función devolverá:

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

Básicamente, devuelve una matriz con la identificación del niño y una matriz que contiene las identificaciones de sus hijos. Espero que esto sea de alguna ayuda.