Nasıl PHP ve MySQL kullanarak birçok alt kategorileri ile yan nav menüsünü görüntülemek için?

1 Cevap php

Tamam ben nasıl birçok kategori ve alt kategorileri ile yan nav menü oluşturmak ve görüntülemek için PHP ve MySQL kullanabilirsiniz merak ediyorum?

Ben sadece burada PHP kodu kodlama başlamak için bilmiyorum?

<ul>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a>
	  <ul>
		<li><a href="" title="">Second Nested Link</a></li>
		<li><a href="" title="">Second Nested Link</a></li>
		<li><a href="" title="">Second Nested Link</a>
		  <ul>
			<li><a href="" title="">Third Nested Link</a></li>
			<li><a href="" title="">Third Nested Link</a></li>
			<li><a href="" title="">Third Nested Link</a>
			  <ul>
				<li><a href="" title="">Fourth Nested Link</a></li>
				<li><a href="" title="">Fourth Nested Link</a></li>
				<li><a href="" title="">Fourth Nested Link</a></li>
			  </ul>
			</li>
			<li><a href="" title="">Third Nested Link</a></li>
			<li><a href="" title="">Third Nested Link</a></li>
		  </ul>
		</li>
		<li><a href="" title="">Second Nested Link</a></li>
		<li><a href="" title="">Second Nested Link</a></li>
	  </ul>
   </li>
   <li><a href="" title="">First Nested Link</a></li>
   <li><a href="" title="">First Nested Link</a></li>
</ul>

İşte benim MySQL tablo olduğunu.

* categories
      id | category_name | description
* sub_categories
      id | parent_id | category_name | description

1 Cevap

Yalnızca kategoriler için bir tablo gerektiğinde; Sadece üst düzey kategoriler için null parent_id alanını ayarlayın.

Aslında HTML üretmek için gibi, sen bu satırları (yalancı) birlikte bir şey yapmak nerede $category_data iki-boyutlu bir dizide sorgunun sonuçları ve $category_id in kimliği ana kategori üretiliyor. Onu tekmelemek için kullanın $category_id = 0

function print_category($category_data, $category_id)
{
    print "<ul>";
    foreach ($category_data as $category)
    {
        if ((integer)$category['parent_id'] == $category_id)
        {
            print "<li>" . $category['category_name'] . "</li>";
            print_category($category_data, $category['id']);
        }
    }
    print "</ul>";
}

Kendi düzen ve tablo yapıları için bu değişiklik gerekecek. (Eğer kategorilerden çok sayıda varsa) üç boyutlu bir diziye dizi dönüştürerek performansını artırabilir, $category_data[parent_id][id][category_row].