membuat multi level menu dengan php dan database

Multilevel menu adalah representasi visual dari daftar item, yang diatur sehingga beberapa item atau kategori, yang disebut node induk, dapat diperluas dan menunjukkan sub-item, yang disebut node anak.  Dengan multilevel menu akan memudahkan untuk menggambarkan hirarki dari data.
berikut ini kami coba membahas cara membuat multilvel menu dengan PHP MySQL.
Pertama-tama kita buat dulu sebuah tabel yang kita sebut tb_kategori.  Adapun field dari tb_kategori adalah


  1. id, ID menu yang bertipe integer dan memiliki properti auto_increment.
  2. nama, nama menu dengan tipe data varchar
  3. parent, induk dari masing-masing menu. Disini kita asumsikan untuk menu root parent-nya adalah 0.
Anda dapat menggunakan PhpMyAdmin atau Mysql GUI tool yang dicari lewat Google.
CREATE TABLE `tb_kategori` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nama` varchar(100) DEFAULT NULL,
  `parent` int(10) DEFAULT NULL,
  PRIMARY KEY  (`id`)
) ;

Tambahkan beberapa data:

idnamaparent
1Menu 10
2Menu 20
3Menu 30
4Menu 1.11
5Menu 1.21
6Menu 1.2.15
7Menu 1.2.25
8Menu 2.12
9Menu 2.22
10Menu 2.2.19
11Menu 2.2.29
12Menu 2.2.2.111
13Menu 3.13
14Menu 2.1.18

Nah selanjutnya kita akan membuat script PHP-nya. Kita akan function punya_sub, dimana fungsi ini untuk mengecek apakah sebuah menu memiliki sub atau tidak.
function punya_sub($id) {
   $sql1="SELECT * FROM tb_kategori WHERE parent='$id'";
   $hs1=mysql_query($sql1);
   $jum=mysql_num_rows($hs1); // mendapatkan jumlah sub menu
   return $jum;
 }
Dan selanjutnya function untuk membuat menu pohon. Function ini nantinya akan memanggil dirinya sendiri atau rekursiv
function buat_menu($parent=0)
 {
   $menu   = "
    "; // inisialisasi awal $sql ="SELECT * FROM tb_kategori WHERE parent='$parent'"; $hasil =mysql_query($sql); while($row=mysql_fetch_assoc($hasil)) { if ($row['parent'] == $parent){ $menu.= "
  • ". {$row[nama]}"; if (punya_sub($row['id'])>0) // Cek, pakah memiliki sub menu $menu.= buat_menu($row['id']); $menu.= "."
  • "; } } $menu.= "
"; return $menu; }
Untuk membuat menu tinggal memanggil fungsi buat menu : echo buat_menu();
Selamat mencoba.

Comments

Popular posts from this blog

Membuat Bentuk Paragraf pada Posting Artikel dengan PHP

5 Teknologi Terbaru Untuk Para Gamers