Deives 0 Denunciar post Postado Junho 21, 2010 Eai pessoal! Andei pesquisando aqui no fórum sobre o assunto e encontrei algumas soluções usando função recursiva... estou tentando montar uma e está quase listando corretamente, se possivel alguém me ajudar agradeço muito ! Abaixo está dois métodos: public function MontarMenu($codigo_categoria, $categorias) { $total_categorias = count($categorias); $i = 0; if($codigo_categoria == 0){ echo '<ul>'; } while($i < $total_categorias){ if($categorias[$i]['categoria_codigo_pai'] == $codigo_categoria){ if($categorias[$i]['categoria_codigo_pai'] == 0){ echo '<li>'; }else{ echo '<ul>'; echo '<li>'; } echo $categorias[$i]['categoria_nome']; self::MontarMenu($categorias[$i]['categoria_codigo'], $categorias); if($categorias[$i]['categoria_codigo_pai'] == 0){ echo '</li>'; }else{ echo '</li>'; echo '</ul>'; } } $i++; } if($codigo_categoria == 0){ echo '</ul>'; } } public function ExibirCategorias() { $categorias = parent::ExecutarComando("SELECT * FROM produtos_categorias", 'select'); return self::MontarMenu(0, $categorias); } $executar = new Categorias(); $executar->ExibirCategorias(); O ploblema é que sempre que está listando uma subcategoria abre e fecha a tag ul porque não sei qual é a condição que preciso acrescentar: if($categorias[$i]['categoria_codigo_pai'] == 0){ echo '<li>'; }else{ echo '<ul>'; echo '<li>'; } Abaixo segue uma imagem da listagem Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 21, 2010 Olha, dá uma olhada neste link. Acho que tá bem simples de entender a lógica utilizada. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Deives 0 Denunciar post Postado Junho 24, 2010 Matias, a função realmente é simples de entender, já estou utilizando ela... fiz apenas uma mudança em relação a utilização da classe MySQLi, pois ainda não utilizo a mesma... Valeu pela ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Abraço! Compartilhar este post Link para o post Compartilhar em outros sites