Innhold
En tremeny er en visuell representasjon av en liste over elementer, organisert slik at enkelte elementer eller kategorier, kalt "overordnede noder", kan utvides og vise underelementer, kalt "barnnoder". Du kan få informasjon fra en MySQL database og bygge en tremeny på en nettside ved hjelp av PHP. Din MySQL-tabell må ha et bestemt format som identifiserer foreldre- og barnnoder og forholdet mellom dem. Hver post i tabellen vil være en node, og du kan opprette et multilevel-hierarki.
retninger
En tremeny tjener til å organisere dataene i et hierarki (Photos.com/Photos.com/Getty Images)-
Logg inn på MySQL-databasen. Opprett et bord med tre felt: node-ID, beskrivelse og foreldre-ID. Skriv inn informasjon i tabellen. Hver nod-ID må være unik. Nodene på toppnivå har en parent node ID på 0 og en barnekode angir nummeret på toppnoden.
-
Åpne HTML-filen der du vil opprette en tremeny. Sett inn markøren der du vil opprette treet og skriv inn 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 linjen kaller "meny" -funksjonen og sender informasjonen til MySQL-databasen. Deretter viser den treet på nettsiden. Den andre linjen 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
- Legg til flere felt i MySQL-tabellen hvis nødvendig. For eksempel kan du legge til et annet tekstfelt som inneholder hyperkoblingene for hver knutepunkt.