Opa Gerson,
Não tenho como testar isso direitinho agora, mas vou tentar dar um empurrão. :D
Você pode fazer algo como:
$array = array();
foreach ($query->result_array() as $row) {
if ($row['childof_id'] = 0) {
$array[$row['id']]['id'] = $row['id'];
$array[$row['id']]['order'] = $row['order'];
$array[$row['id']]['childof_id'] = 0;
} else {
$array[$row['childof_id']]['id'] = $row['id'];
$array[$row['childof_id']]['order'] = $row['order'];
$array[$row['childof_id']]['childof_id'] = $row['childof_id'];
}
}
Não testei, deve tá faltando coisa, mas vê se pega a idéia
Valeu
--
Davi
Em 19 de julho de 2010 13:29, Gerson Goulart
<[email protected]> escreveu:
> Fala galera!
>
> Estou tentando fazer um negócio muito loco e não estou conseguindo. Resolvi
> pedir ajuda aos "universitários". :-P
>
> Seguinte, tenho uma tabela no meu banco para armazenar os itens do menu do
> site, com os seguintes campos:
>
> id
> title
> order -> Esse eu vou usar para ordenar os ítens por importância. Tipo: um
> item de menu order=1 tem que vir antes de um order=2.
> page_id
> type
> link
> section
> childof_id -> Esse vou usar pra criar hierarquia. Tipo:
> item(id=1,childof_id=0) fica na raiz, item(id=2,childof_id=1) seria submenu
> de 1.
>
> Para clarear a idéia, basicamente eu quero dar um select * nessa tabela e
> transformá-la em algo assim (reparem que os itens estão agrupados de acordo
> com a relação entre childof_id e id e que os itens com order maior aparecem
> depois dos com order menor):
>
> • Notícias (id=2,order=4,childof_id=0)
> • Brasil (id=3,order=2,childof_id=2)
> • Mundo (id=10,order=3,childof_id=2)
> • Esportes (id=7,order=10,childof_id=0)
> • Futebol (id=8,order=1,childof_id=7)
> • Natação (id=1,order=5,childof_id=7)
> • Formula 1 (id=4,order=7,childof_id=7)
>
> Agora o X da questão é: Como eu faço para reorganizar a query que recebo do
> model (select * from menu) e reorganizar dessa forma estruturada antes de
> enviar para a view?
>
> Fico imensamente grato com qualquer ajuda pq minha cabeça deu tilt já!
> ehehehehe
>
> Abraços!
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br