วิธีสร้างเมนูแบบต้นไม้ด้วย PHP และ MySQL

ผู้เขียน: Eric Farmer
วันที่สร้าง: 6 มีนาคม 2021
วันที่อัปเดต: 1 พฤษภาคม 2024
Anonim
PHP Tutorial: Menu - Sub Menu in PHP/ MySQL
วิดีโอ: PHP Tutorial: Menu - Sub Menu in PHP/ MySQL

เนื้อหา

เมนูต้นไม้เป็นการแสดงภาพของรายการองค์ประกอบที่จัดระเบียบเพื่อให้องค์ประกอบหรือหมวดหมู่บางอย่างที่เรียกว่า "โหนดหลัก" สามารถขยายและแสดงองค์ประกอบย่อยที่เรียกว่า "โหนดลูก" คุณสามารถรับข้อมูลจากฐานข้อมูล MySQL และสร้างเมนูทรีบนหน้าเว็บโดยใช้ PHP ตาราง MySQL ของคุณต้องมีรูปแบบเฉพาะที่ระบุโหนดแม่และลูกและความสัมพันธ์ระหว่างพวกเขา แต่ละระเบียนในตารางจะเป็นโหนดและคุณสามารถสร้างลำดับชั้นหลายระดับ


คำสั่ง

เมนูต้นไม้ทำหน้าที่จัดระเบียบข้อมูลในลำดับชั้น (Photos.com/Photos.com/Getty Images)
  1. ล็อกอินเข้าสู่ฐานข้อมูล MySQL ของคุณสร้างตารางที่มีสามฟิลด์: ID โหนดคำอธิบายและ ID โหนดหลัก ป้อนข้อมูลในตาราง แต่ละ ID โหนดต้องไม่ซ้ำกัน โหนดระดับบนสุดมี ID โหนดหลักเป็น 0 และโหนดชายด์ระบุจำนวนโหนดระดับบนสุด

  2. เปิดไฟล์ HTML ที่คุณต้องการสร้างเมนูแบบต้นไม้ แทรกเคอร์เซอร์ที่คุณต้องการสร้างต้นไม้และป้อนรหัสต่อไปนี้:

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

    บรรทัดแรกเรียกฟังก์ชัน "menuarvore" และส่งข้อมูลไปยังฐานข้อมูล MySQL จากนั้นจะแสดงแผนผังในหน้าเว็บ บรรทัดที่สองปิดบล็อกโค้ด PHP

เคล็ดลับ

  • เพิ่มเขตข้อมูลเพิ่มเติมลงในตาราง MySQL หากจำเป็น ตัวอย่างเช่นคุณสามารถเพิ่มฟิลด์ข้อความอื่นที่มีการเชื่อมโยงหลายมิติสำหรับแต่ละโหนด