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

Menu bertingkat dari catatan basis data

Kode untuk ini akan menjadi seperti berikut (Ini perlu diubah untuk cara apa pun Anda berinteraksi dengan database, dll.):

// Here we do a query to get all the rows from the table
$db_result = db_execute_query('SELECT * FROM `menu_table` ORDER BY `order_no`');

// Here we take the rows and put it into a structured array
$items = array();
$hierarchy = array('' => array());
while ($row = db_fetch_row($db_result)) {
    $items[$row['menu_name']] = $row['menu_name_en'];
    if ($row['main_menu'] == 'yes') {
        $hierarchy[''][] = $row['menu_name'];
    } else {
        if (!isset($hierarchy[$row['sub_menu']]) {
            $hierarchy[$row['sub_menu']] = array();
        }
        $hierarchy[$row['sub_menu']][] = $row['menu_name'];
    }
}

// Here we define a recursive function to run through our $hierarchy array;
function show_menu($name = '') {
    if (isset($hierarchy[$name])) {
        if ($name == '') {
                echo '<ul class="dropdown">';
        } else {
                echo '<ul class="sub_menu">';
        }

        foreach ($hierarchy[$name] as $sub) {
            echo '<li><a href="#">' . $items[$sub] . '</a>';
            show_menu($sub);
            echo '</li>';
        }

        echo '</ul>';
    }
}

// Here we execute the recursive function on the main menu
show_menu('');

Cobalah untuk memahami apa yang saya lakukan di sini alih-alih hanya mengimplementasikannya kata demi kata. Setelah Anda mengenal fungsi rekursif, dunia baru akan terbuka untuk Anda.

Perhatikan juga bahwa tabel db Anda dapat diubah untuk membuat kode ini lebih sederhana



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Operator LIKE Bekerja di MySQL

  2. Mysql bergabung dengan tabel

  3. MySQL:bagaimana saya bisa melihat SEMUA batasan di atas meja?

  4. Pergeseran bitwise di mysql

  5. 'SQLSTATE[HY093]:Nomor parameter tidak valid:jumlah variabel terikat tidak cocok dengan jumlah token'