Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com dificuldade em realizar a construção de um menu infinito e gostaria de uma ajuda.
Problema:
Imagine a seguinte situação: Tenho duas tabelas:
1 Tabela -
ID_MENU
ID_MENU_PAI
NAME
LINK
2 TABELA
ID MENU PAI
ID MENU FILHO (ID MENU TABELA1)
O fato da segunda tabela existir é que um mesmo "submenu" pode estar em um outro menu diferente, ou seja o menu de cadastro de usuário pode estar ao mesmo tempo no Admin ou em um menu Cliente sem que seja cadastrado duas vezes na Tabela 1.
Se eu fizer um select na tabela 1 eu consigo trazes todos os menus com seus respectivso pais:
[7] => Array
(
[0] => Array
(
[ID] => 26
[NAME] => Projects
[LINK] => #
)
)
[48] => Array
(
[0] => Array
(
[ID] => 4
[NAME] => Departments
[LINK] =>
)
)
[36] => Array
(
[0] => Array
(
[ID] => 37
[NAME] => Customers
[LINK] => #
)
[1] => Array
(
[ID] => 38
[NAME] => Items
[LINK] => #
)
)
[47] => Array
(
[0] => Array
(
[ID] => 9
[NAME] => Test
[LINK] => #
)
[1] => Array
(
[ID] => 46
[NAME] => Test2
[LINK] => #
)
)
O problema é que na tabela 2 eu tenho a seguinte relação:
ID_MENU_PAI ID_MENU_FILHO
7 26
7 48
48 4
36 37
36 38
48 47
47 9
47 46
36 46
Ou seja eu tenho que consultar a tabela 2 e montar o array para ficar dessa forma:
[7] => Array
(
[0] => Array
(
[ID] => 26
[NAME] => Projects
[LINK] => #
)
[48] => Array
(
[0] => Array
(
[ID] => 4
[NAME] => Departments
[LINK] => #
)
[47] => Array
(
[0] => Array
(
[ID] => 9
[NAME] => Test
[LINK] => #
)
[1] => Array
(
[ID] => 46
[NAME] => Test2
[LINK] => #
)
)
)
)
[36] => Array
(
[0] => Array
(
[ID] => 37
[NAME] => Customers
[LINK] => #
)
[1] => Array
(
[ID] => 38
[NAME] => Items
[LINK] => #
)
[2] => Array
(
[ID] => 46
[NAME] => Test2
[LINK] => #
)
)
Notem que o 46 aparece em dois lugares um sendo o terceiro nivel e outro o primeiro nivel.
Alguém tem alguma idéia de como fazer isso??
Desde já agradeço
Carregando comentários...