Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tchaves

Criação de Menu dinâmico com uma ou duas colunas

Recommended Posts

Bom pessoal!

 

Depois de muito apanhar, resolvi pedir ajuda.

 

Estou tentando criar um menu pra minha aplicação, é um menu dinâmico, que será criado conforme informações registradas na base de dados e relacionamentos do perfil de cada usuário com a tabela de menu. Vou detalhar abaixo!

 

  • Cada usuário terá um único perfil, e um perfil pode estar em vários usuários: Perfil 1 -> N Usuário.
  • Cada perfil poderá ter vários menus, assim como um ou mais menu's podem estar relacionados com vários perfis. Perfil N -> N Menu. Isso dá origem a uma tabela relacionamento chamada: perfil_menu.
  • Os itens dos menus não podem se repetir entre os menus. Menu 1 -> N Item.

 

Table usuario;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| id_perfil | int(11) | NO | MUL | NULL | |
| nome | varchar(45) | NO | | NULL | |
| ativo | tinyint(4) | NO | | 1 | |
+-----------+-------------+------+-----+---------+----------------+

 

Table perfil;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(45) | NO | | NULL | |
| ativo | tinyint(4) | NO | | 1 | |
+-------+-------------+------+-----+---------+----------------+

 

Table menu;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(100) | NO | | NULL | |
| descricao | varchar(100) | YES | | NULL | |
| url | varchar(50) | YES | | NULL | |
| ordem | int(2) | YES | | 0 | |
| ativo | tinyint(4) | YES | | 1 | |
+-----------+--------------+------+-----+---------+----------------+

 

Table perfil_menu;
+-----------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| id_perfil | int(11) | NO | MUL | NULL | |
| id_menu | int(11) | NO | MUL | NULL | |
| ativo | tinyint(4) | YES | | 1 | |
+-----------+------------+------+-----+---------+----------------+

 

Table item;
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| id_menu | int(11) | NO | MUL | NULL | |
| nome | varchar(50) | NO | | NULL | |
| descricao | varchar(100) | YES | | NULL | |
| url | varchar(50) | YES | | NULL | |
| ordem | int(2) | YES | | 0 | |
| grupo | varchar(20) | YES | | NULL | |
| ativo | tinyint(4) | YES | | 1 | |
+-----------+--------------+------+-----+---------+----------------+

 

Pessoal, agora vem o que eu não estou conseguindo fazer. Quero criar um menu semelhante a este aqui: http://output.jsbin.com/demusi#%C2'> cliquem nos menus e percebam que eles são divididos em múltiplas colunas. E é exatamente isto que não estou conseguindo fazer. As Querys estão prontas e perfeitas, porém não estou conseguindo dividí-los em colunas e com os itens pertencendo à sua coluna correspondente.

Obs: A coluna grupo na tabela item serve para relacionar o item, no caso a <li><a> com o seu grupo correspondente.

Obs: Esta modelagem não deve ser considerada a ideal, portanto, está aberto a sugestões também, mas o foco mesmo é na criação das colunas com seus itens correspondentes.

Obs: Caso a ajuda seja em forma de lógica, também serve.

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.