sql >> Database teknologi >  >> RDS >> Mysql

rekursiv funktion for at få alle børnekategorier

Jeg havde svært ved at finde ud af din funktion. Jeg tror, ​​det vil gøre, hvad du vil. Det får alle børn i en kategori med ID $id, og også deres børn (og dermed får hele underkategorien, underkategorieffekten, som du ønskede).

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

Denne funktion returnerer:

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

Det returnerer dybest set et array med barnets id og et array der indeholder dets børns id'er. Jeg håber, at dette er til nogen hjælp.



  1. Forbindelsen kan ikke castes til oracle.jdbc.OracleConnection

  2. Sådan opsætter du ElasticSearch-indeksstruktur med flere entitetsbindinger

  3. max(længde(felt)) i mysql

  4. Normaliser transaktionsdata fra tids- og statuskolonner til minutter pr. statusværdi