Mysql
 sql >> база данни >  >> RDS >> Mysql

Изграждане на дърво с помощта на вложени неподредени списъци

Хм, вярвам, че трябва да има достъпни примери онлайн за това как можете да постигнете това. Някои от тях може дори да говорят за нови начини за съхраняване на йерархични данни и ще намерите четивата за интересни.

Както и да е, този кодов фрагмент, базиран на рекурсия, може да ви помогне да постигнете своя 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
?>

Надявам се да помогне!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извлека големи данни от mysql към php?

  2. Създаване на тригер в mysql за генериране на UUID

  3. Код на грешка:23 Изчерпани ресурси при отваряне на файл

  4. mysql заявка за динамично конвертиране на данни от редове в колони

  5. LEFT JOIN само първия ред