Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Membangun pohon menggunakan daftar tidak berurutan bersarang

Hmm, saya yakin pasti ada contoh yang tersedia secara online tentang bagaimana Anda dapat mencapai ini. Beberapa dari mereka bahkan mungkin berbicara tentang cara baru untuk menyimpan data hierarkis dan Anda akan menemukan bacaan yang menarik.

Bagaimanapun, cuplikan kode ini, berdasarkan rekursi, dapat membantu Anda mencapai HTML Anda.

<?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
?>

Semoga membantu!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat sql-mode=NO_ENGINE_SUBSTITUTION permanen di MySQL my.cnf

  2. hanya data mysqldump

  3. Teks JSON tidak valid dalam argumen 2 - json_contains di MySQL 5.7.8

  4. Peringkat MySQL Dengan Berat

  5. Hitung perbedaan antara dua datetime di MySQL