Come creare un menu ad albero con PHP e MySQL

Autore: Bobbie Johnson
Data Della Creazione: 5 Aprile 2021
Data Di Aggiornamento: 1 Dicembre 2024
Anonim
Registrazione e gestione iscritti con PHP e MySql 1/6
Video: Registrazione e gestione iscritti con PHP e MySql 1/6

Contenuto

Un menu ad albero è una rappresentazione visiva di un elenco di elementi, organizzati in modo che alcuni elementi o categorie, chiamati "nodi parent", possano essere espansi e visualizzare i sottoelementi, chiamati "nodi figlio". È possibile ottenere informazioni da un database MySQL e creare un menu ad albero su una pagina Web utilizzando PHP. La tua tabella MySQL deve avere un formato specifico che identifichi i nodi padre e figlio e le relazioni tra loro. Ogni record nella tabella sarà un nodo ed è possibile creare una gerarchia multilivello.


indicazioni

Un menu ad albero serve per organizzare i dati in una gerarchia (Photos.com/Photos.com/Getty Images)
  1. Accedi al tuo database MySQL. Crea una tabella con tre campi: ID nodo, descrizione e ID nodo genitore. Inserisci le informazioni nella tabella. Ogni ID nodo deve essere unico. I nodi di livello superiore hanno un ID nodo genitore di 0 e un nodo figlio indica il numero del nodo di livello superiore.

  2. Apri il file HTML in cui desideri creare un menu ad albero. Inserisci il cursore nel punto in cui desideri creare l'albero e inserisci il seguente codice:

    $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);

    La prima riga chiama la funzione "menuarvore" e passa le informazioni al database MySQL, quindi mostra l'albero nella pagina web. La seconda riga chiude il blocco di codice PHP.

suggerimenti

  • Aggiungi altri campi alla tabella MySQL, se necessario. Ad esempio, è possibile aggiungere un altro campo di testo che contiene i collegamenti ipertestuali per ciascun nodo.