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

Vytvoření stromu pomocí vnořených neuspořádaných seznamů

Hmm, věřím, že na internetu musí být k dispozici příklady, jak toho můžete dosáhnout. Někteří z nich mohou dokonce mluvit o nových způsobech ukládání hierarchických dat a naměřené hodnoty pro vás budou zajímavé.

Tento úryvek kódu, založený na rekurzi, vám každopádně může pomoci dosáhnout vašeho HTML.

<?php
// recursive function to generate the category HTML
function generateTree ($parent) {
    global $arrPCat, $arrCat;
    if (array_key_exists($parent, $arrPCat)) {
        echo '<ul' . ($parent == 0 ? ' class="tree"' : '') . '>';
        foreach ($arrPCat[$parent] as $arrC) {
            echo '<li>' . $arrC['name'] . '</li>';
            generateTree($arrC['id']);
        }
        echo '</ul>';
    }
}

// read all categories from the DB
$rs = mysql_query('SELECT  `cl`.`id`, `cl`.`name`, `c`.`position`, IFNULL(`c`.`parent_id`, 0) AS `parent_id`
    FROM  `categories_locale`  `cl`
    LEFT JOIN  `categories`  `c` ON  `cl`.`id` =  `c`.`id`
    ORDER BY  `c`.`parent_id` ,  `c`.`position`');
while ($r = mysql_fetch_assoc($rs)) {
    // store parent and its children into the $arrPCat Array
    $arrPCat[$r['parent_id']][] = Array (
                                    'id' => $r['id'],
                                    'name' => $r['name']
                                  );
}
generateTree (0); // now generate the HTML for the category tree
?>

Doufám, že to pomůže!



  1. Jak přečtu tento textový soubor a vložím jej do MySQL?

  2. Jak mohu vložit data do databáze MySQL?

  3. Heroku PG:Obnovit přístup k zápisu byl zrušen

  4. Výkon MySQL BIGINT(20) vs Varchar(31).