Indhold
En træmenu er en visuel repræsentation af en liste over elementer, der er organiseret, så nogle elementer eller kategorier, der hedder "overordnede noder", kan udvides og vise underelementer kaldet "børne noder". Du kan få oplysninger fra en MySQL database og opbygge en træmenu på en webside ved hjælp af PHP. Din MySQL-tabel skal have et specifikt format, der identificerer forældre- og barnnoderne og forholdet mellem dem. Hver post i tabellen vil være en node, og du kan oprette et multilevel hierarki.
retninger
En træmenu tjener til at organisere dataene i et hierarki (Photos.com/Photos.com/Getty Images)-
Log ind på din MySQL-database. Opret en tabel med tre felter: node ID, beskrivelse og stamkoden ID. Indtast oplysninger i tabellen. Hvert nod-id skal være unikt. De øverste noder har et stamknude ID på 0, og et børnehoved angiver nummeret på topnoden.
-
Åbn HTML-filen, hvor du vil oprette en træmenu. Indsæt markøren, hvor du vil oprette træet, og indtast følgende kode:
$db = mysql_connect ($nomehost, $usuario, $senha); mysql_select_db ($bancodados);Estas linhas apenas configuram a conexão ao seu banco de dados MySQL. Altere as variáveis PHP pelos valores apropriados para a sua base.
-
Digite o seguinte código:
$result = mysql_query('SELECT * FROM nome_tabela') or die(erro_mysql());
Esta linha faz uma chamada ao banco de dados MySQL, obtém da tabela a informação da estrutura do menu em árvore e a salva em uma variável PHP.
-
Digite o seguinte código:
$menu = Array(); while ($m = mysql_fetch_array($result)) { $menu[] = Array('id'=>$m['id'], 'texto'=>$m['texto'], 'pai'=>$m['idpai']); }
A primeira linha cria uma variável PHP e a inicializa como um array. O laço 'while' percorre os registros da variável $result e os formata para serem usados por uma função PHP.
-
Digite o seguinte código:
function menuarvore($linhas,$idpai=0) { $result = '
- '; foreach ($linhas as $linha) {
A primeira linha cria uma nova função 'menuarvore' que você usará para montar a sua árvore, e usa um ou dois parâmetros. No primeiro lugar, ela toma a informação de um array PHP. O segundo parâmetro é um número inteiro que contém informação sobre os nodos pai na árvore. Se você não indicar um, a função criará a sua própria variável e inicializará o valor em zero.
-
Digite o seguinte código:
if ($linha['idpai'] == $idpai) { $result.= '
- {$linha[texto]}'; foreach ($linha as $r) { if ($r['idpai'] == $r['id']) $children = true; else $children = false; } if ($children = true) $result.= treemenu($linhas,$linha['id']) . ' '; }
-
Digite o seguinte código:
} $result .= ''; return $result; }
Estas linhas fecham o laço 'for' que percorre todas as colunas dos resultados MySQL, adicionam código HTML e retornam a árvore da função. A última linha fecha o bloco de funções 'treemenu'.
-
Digite o seguinte código:
echo menuarvore($menu);
Den første linje kalder "menuarvore" -funktionen og sender oplysningerne til MySQL-databasen. Derefter vises træet på websiden. Den anden linje lukker PHP-kodeblokken.
Estas linhas usam sentenças 'if' e laços para percorrer a informação da variável PHP que contém a estrutura do menu em árvore. Se a linha for um pai com um valor ID zero, a função criará um nodo pai. Se a linha for um filho, a função buscará o ID do nodo pai e criará um nodo filho conectado a ele. A função 'treemenu' é chamada recursivamente para verificar cada linha da variável de array PHP.
tips
- Tilføj flere felter til MySQL-tabellen, hvis det er nødvendigt. For eksempel kan du tilføje et andet tekstfelt, der indeholder hyperlinks for hver knude.