Cum se creează un meniu copac cu PHP și MySQL

Autor: Bobbie Johnson
Data Creației: 6 Aprilie 2021
Data Actualizării: 12 Mai 2024
Anonim
How to create Dynamic Tree View in PHP
Video: How to create Dynamic Tree View in PHP

Conţinut

Un meniu arbore este o reprezentare vizuală a unei liste de elemente, organizată astfel încât unele elemente sau categorii, numite "noduri părinte", să poată fi extinse și să afișeze sub-elemente, numite "noduri copil". Puteți obține informații dintr-o bază de date MySQL și puteți crea un meniu copac pe o pagină web folosind PHP. Tabela MySQL trebuie să aibă un format specific care identifică nodurile părinte și copil și relațiile dintre ele. Fiecare înregistrare din tabel va fi un nod și puteți crea o ierarhie pe mai multe niveluri.


instrucțiuni de ghidare

Un meniu arborează pentru a organiza datele într-o ierarhie (Photos.com/Photos.com/Getty Images)
  1. Conectați-vă la baza de date MySQL. Creați un tabel cu trei câmpuri: ID nod, descriere și ID nod părinte. Introduceți informații în tabel. Fiecare identificator de noduri trebuie să fie unic. Nodurile de nivel superior au un nod parental ID de 0 și un nod copil indică numărul nodului de nivel superior.

  2. Deschideți fișierul HTML în care doriți să creați un meniu copac. Introduceți cursorul în locul în care doriți să creați copacul și introduceți următorul cod:

    $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.


  3. 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.

  4. 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.

  5. 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']) . '
    • '; }

      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.

    • 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'.

  6. Digite o seguinte código:

    echo menuarvore($menu);

    Prima linie apelează funcția "menuarvore" și transmite informația în baza de date MySQL, apoi afișează arborele din pagina web. A doua linie închide blocul de cod PHP.

sfaturi

  • Adăugați mai multe câmpuri în tabelul MySQL dacă este necesar. De exemplu, puteți adăuga un alt câmp de text care conține hyperlink-urile pentru fiecare nod.