Vejam como foi criado a lógica.
Criando a tabela.
CREATE TABLE IF NOT EXISTS `menu` ( `caminho` varchar(250) DEFAULT NULL, `descricao` varchar(250) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;....inclusão dos dados na tabela
INSERT INTO `base_de_conhecimentos` (`caminho`, `descricao`, `solucao`) VALUES ('1', 'Item 1', NULL), ('2', 'Item 2', NULL), ('3', 'Item 3', NULL), ('1/1', 'Item 1/1', NULL), ('1/2', 'Item 1/2', NULL), ('2/1', 'Item 2/1', NULL), ('3/1', 'Item 3/1', NULL), ('3/2', 'Item 3/2', NULL), ('3/3', 'Item 3/3', NULL), ('3/3/1', 'Item 3/3/1', NULL), ('3/3/2', 'Item 3/3/2', NULL), ('3/3/3', 'Item 3/3/3', NULL), ('3/3/3/1', 'Item 3/3/3/1', NULL);
código php
<? //conexao mysql_connect("127.0.0.1","root","****"); //seleciona o banco mysql_select_db("banco"); //consulta $consulta = mysql_query("Select caminho, descricao From menu Order by caminho")or die(mysql_error()); $maior_nivel = 0; //REALIZA A PESQUISA NO BANCO DE DADOS E ARMAZENA O RESULTADO EM VETORES while($aux_consulta = mysql_fetch_assoc($consulta)){ $root = substr($aux_consulta['caminho'],0,(strlen($aux_consulta['caminho'])-1)); $root_vetor = explode("/",$root); $count_vetor= count($root_vetor)-1; if ( !empty($root) ) { $li[ $root ][] = $aux_consulta['caminho']; } else { $li_root[] = $aux_consulta['caminho']; } $descricao[ $aux_consulta['caminho'] ] = $aux_consulta['descricao']; if ($maior_nivel < $count_vetor ) $maior_nivel = $count_vetor; } //FUNCAO PARA REPETIÇÃO DOS <UL> E <LI> function vetor_li($lis,$li,$descricao){ echo '<ul>'; foreach($li[ $lis ] as $key2 => $lis2 ){ $lis3 = $lis2.'/'; if ( isset($li[ $lis3 ]) ){ echo '<li class="closed"><span class="folder">'.$descricao[$lis2].'</span>'; vetor_li($lis3,$li,$descricao); }else{ echo '<li><span class="file">'.$descricao[$lis2].'</span>'; } echo '</li>'; } echo '</ul>'; } echo '<ul id="browser" class="filetree">'; foreach($li_root as $key => $lis){ echo '<li class="closed"><span class="folder">'.$descricao[$lis].'</span>'; $lis = $lis.'/'; if ( isset($li[ $lis ]) ){ echo '<ul>'; foreach($li[ $lis ] as $key2 => $lis2 ){ $lis3 = $lis2.'/'; if ( isset($li[ $lis3 ]) ){ echo '<li class="closed"><span class="folder">'.$descricao[$lis2].'</span>'; vetor_li($lis3,$li,$descricao); } else { echo '<li><span class="file">'.$descricao[$lis2].'</span>'; } echo '</li>'; } echo '</ul>'; } echo '</li>'; } echo '</ul>'; /**/ ?>
2 comentários:
Adorei o blog, continue postando, no site Scriptcase contem algumas informações sobre.
ótimo artigo parabéns continue postando, tem um outro site que eu recomendo tambem Scriptcase.
Postar um comentário
Leia as regras:
Todos comentários são lidos e moderados previamente.
são publicados aqueles que respeitam as regras abaixo:
-Seu comentário precisa ter relação com o assunto do post;
-Não inclua links desnecessários no conteúdo do seu comentário
-Se quiser deixar sua URL, comente usando a opção Comentar como:OpenID
OBS: comentários dos leitores não refletem as opniões do blog.