Multilevel menu atau menu pohon 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
- id, ID menu yang bertipe integer dan memiliki properti auto_increment.
- nama, nama menu dengan tipe data varchar
- 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.
Tambahkan beberapa data:
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.
Selamat mencoba.
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:
| id | nama | parent |
| 1 | Menu 1 | 0 |
| 2 | Menu 2 | 0 |
| 3 | Menu 3 | 0 |
| 4 | Menu 1.1 | 1 |
| 5 | Menu 1.2 | 1 |
| 6 | Menu 1.2.1 | 5 |
| 7 | Menu 1.2.2 | 5 |
| 8 | Menu 2.1 | 2 |
| 9 | Menu 2.2 | 2 |
| 10 | Menu 2.2.1 | 9 |
| 11 | Menu 2.2.2 | 9 |
| 12 | Menu 2.2.2.1 | 11 |
| 13 | Menu 3.1 | 3 |
| 14 | Menu 2.1.1 | 8 |
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.= "
Selamat mencoba.








kalau menu multilevel ini dihubungkan dengan database (ngambil datanya dari database gimana caranya ya)?
ReplyDeletewww.tokoonlinebaru.com
itu sudah dihubungkan dgn database gan.
DeleteKalau ditambah dengan jumlah gmn gan? kaya jumlah artikel, jd parennya hitung jumlah article anak
ReplyDeleteTitanium jewelry piercing | Etsy
ReplyDeleteFind the best titanium bracelet titanium jewelry piercing on Etsy. used ford escape titanium Sign up for titanium prices our newsletter to receive free titanium rimless glasses gifts for women. Choose from a range of jewelry silicone dab rig with titanium nail