Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan rekursi untuk membangun navigasi

Berikut adalah contoh dengan rekursi.

function buildNavigation($items, $parent = NULL)
{
    $hasChildren = false;
    $outputHtml = '<ul>%s</ul>';
    $childrenHtml = '';

    foreach($items as $item)
    {
        if ($item['parent'] == $parent) {
            $hasChildren = true;
            $childrenHtml .= '<li>'.$item['category_name'];         
            $childrenHtml .= buildNavigation($items, $item['category_id']);         
            $childrenHtml .= '</li>';           
        }
    }

    // Without children, we do not need the <ul> tag.
    if (!$hasChildren) {
        $outputHtml = '';
    }

    // Returns the HTML
    return sprintf($outputHtml, $childrenHtml);
}

print buildNavigation($items);

Script itu menghasilkan output berikut:

<ul>
    <li>Menu 1</li>
    <li>Menu 2
        <ul>
            <li>Sub Menu 2.1</li>
            <li>Sub Menu 2.2</li>
            <li>Sub Menu 2.3
                <ul>
                    <li>Sub Menu 2.2.1</li>
                    <li>Sub Menu 2.2.2</li>
                    <li>Sub Menu 2.2.3</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>Menu 3</li>
</ul>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL UPDATE menambahkan data ke dalam kolom

  2. Ubah tanggal mySQL menjadi tanggal Javascript

  3. Manajemen akun pengguna, peran, izin, otentikasi PHP dan MySQL - Bagian 4

  4. Tipe data kolom apa yang harus saya gunakan untuk menyimpan teks atau html dalam jumlah besar?

  5. Urutan parameter bernama masuk akal untuk penyedia data MySql .Net?