Så här skapar du en trädmeny med PHP och MySQL

Författare: Florence Bailey
Skapelsedatum: 23 Mars 2021
Uppdatera Datum: 28 Oktober 2024
Anonim
Så här skapar du en trädmeny med PHP och MySQL - Artiklar
Så här skapar du en trädmeny med PHP och MySQL - Artiklar

Innehåll

En trädmeny är en visuell representation av en lista med element, organiserad så att vissa element eller kategorier, som kallas "föräldrarsnoder", kan utökas och visa delelement, kallad "barnnoder". Du kan få information från en MySQL-databas och bygga en trädmeny på en webbsida med PHP. Din MySQL-tabell måste ha ett visst format som identifierar föräldrars och barns noder och relationerna mellan dem. Varje post i tabellen blir en nod och du kan skapa en hierarki med flera nivåer.


vägbeskrivning

En trädmeny tjänar till att organisera data i en hierarki (Photos.com/Photos.com/Getty Images)
  1. Logga in på din MySQL-databas. Skapa ett bord med tre fält: nod-ID, beskrivning och stamkod ID. Ange information i tabellen. Varje nod-ID måste vara unikt. De överordnade noderna har ett parent nod-ID på 0 och ett barn nod anger numret på toppnoden.

  2. Öppna den HTML-fil där du vill skapa en trädmeny. Sätt in markören där du vill skapa trädet och ange följande kod:

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

    Den första raden kallar "meny" -funktionen och skickar informationen till MySQL-databasen. Då visas trädet på webbsidan. Den andra raden stänger PHP-kodblocket.

tips

  • Lägg till fler fält i MySQL-tabellen om det behövs. Till exempel kan du lägga till ett annat textfält som innehåller hyperlänkarna för varje nod.