10/10/2018, 13:23
[PHP Menu 2 cấp Codeigniter] Giúp mình tạo menu 2 cấp lấy trong database !
Mình có 2 cái bảng
Bảng Category:
| Id | Name | Title | Date
Bảng Sub_category:
| ID | Parent_id | Name | Title | Date |
Giờ mình muốn lấy 2 cái bảng này làm menu 2 cấp.
- Thằng Category sẽ làm Menu chính.
- Nếu Parent_id của thằng Sub_category mà trùng với Id của thằng Category thì sẽ làm menu con của thằng Cateogry.
Ai biết giúp mình nhé. Có thế viết mình cái điều khiển của thằng này thì tốt.
Bảng Category:
| Id | Name | Title | Date
Bảng Sub_category:
| ID | Parent_id | Name | Title | Date |
Giờ mình muốn lấy 2 cái bảng này làm menu 2 cấp.
- Thằng Category sẽ làm Menu chính.
- Nếu Parent_id của thằng Sub_category mà trùng với Id của thằng Category thì sẽ làm menu con của thằng Cateogry.
Ai biết giúp mình nhé. Có thế viết mình cái điều khiển của thằng này thì tốt.
Bài liên quan
Lúc này mình chỉ cần 1 table thôi
ID | Parent_id | Name | Title | Date
Câu lệnh sẽ theo logic sau
SELECT * FROM Table WHERE Parent_id == 0 // lấy nhưng Category cha, tức là Parent_id == 0
While() // chạy vòng lặp với category có Parent_id == 0
{
echo Name;
$ID = id; // lấy biến ID, biến này sẽ chính là Parent_id của những thằng subcate
SELECT * FROM Table WHERE Parent_id == $id;
while{
echo Name;
}
}
Mình k nhớ chính xác, hoặc có cách tối ưu hơn, nhưng đại loại là như thế.
Hoặc bạn tìm seft join, sẽ tốt hơn nhé
code mạch lạc dễ hiểu
sẽ tải nặng cho server vì phải kéo query 2 lần
có 1 cách khác là bạn có thể dùng php kết hợp với javascript
đơn giản nhất trong các cách đó thì là query tất cả các record order bi parent_id
bạn có các lớp khác nhau là parent_id=0 và các lớp khác
sau đó dùng vòng lập để tách 2 lớp ra rồi căn cứ vào cái ID để xác định sub và nối nó vào thành 1 cuỗi rồi in ra