


Bagaimana untuk Membina Tahap Menu Tanpa Had dengan PHP dan MySQL: Panduan Langkah demi Langkah?
Oct 30, 2024 pm 06:57 PMMembina Tahap Menu Tanpa Had dengan PHP dan MySQL
Dalam pembangunan tapak web, navigasi menu memainkan peranan penting dalam pengalaman pengguna. Walau bagaimanapun, membina menu yang menyokong tahap submenu tanpa had boleh mencabar. Mari kita mendalami pendekatan yang komprehensif untuk mencapai fungsi ini menggunakan PHP dan MySQL.
Struktur Pangkalan Data dan Sistem Menu
Struktur pangkalan data yang anda nyatakan ialah pendekatan biasa untuk mewakili sistem menu berhierarki. Setiap item menu mempunyai medan induk untuk mewujudkan hubungan ibu bapa-anak. ID Induk 0 menunjukkan item menu peringkat atas.
Mendapatkan semula Menu Peringkat Atas
Kod PHP sedia ada anda untuk mendapatkan semula menu peringkat atas adalah betul:
<code class="php">$list = $obj->childmenu($parentid); foreach($list as $menu) { echo '<li><a href="#">'.$name.'</a></li>'; }</code>
Mengenal pasti Kewujudan dan Paparan Submenu
Pertanyaan anda bertujuan untuk mengenal pasti jika item menu mempunyai menu anak dan memaparkannya dalam item senarainya. Untuk mencapai matlamat ini, anda perlu mengubah suai pertanyaan SQL dan kod PHP anda.
Pertanyaan SQL Dioptimumkan
Menggunakan satu pertanyaan SQL, kami boleh mendapatkan semula semua item menu yang dipesan oleh ID dan kedudukan induk mereka:
<code class="sql">SELECT id, parent_id, title, link, position FROM menu_item ORDER BY parent_id, position;</code>
Kod PHP Diperhalusi
Kod PHP yang disemak menggabungkan tindanan untuk menjejak tahap menu semasa dan memastikan pengendalian menu bersarang yang cekap :
<code class="php">$items = $query_results; // Assuming $query_results contains the result of the SQL query $html = ''; $parent = 0; $parent_stack = array(); foreach ( $items as $item ) { if ( !empty($item['parent_id']) ) { $children[$item['parent_id']][] = $item; } } while ( ( $option = each( $children[$parent] ) ) || ( $parent > 0 ) ) { if ( !empty( $option ) ) { if ( !empty( $children[$option['value']['id']] ) ) { $html .= '<li>' . $option['value']['title'] . '<ul>'; array_push( $parent_stack, $parent ); $parent = $option['value']['id']; } else { $html .= '<li>' . $option['value']['title'] . '</li>'; } } else { $html .= '</ul>'; $parent = array_pop( $parent_stack ); } } echo $html;</code>
Kod yang dikemas kini ini akan memproses struktur menu dengan berkesan, mencipta penanda HTML untuk menu bersarang dan memaparkannya dalam item senarai masing-masing.
Atas ialah kandungan terperinci Bagaimana untuk Membina Tahap Menu Tanpa Had dengan PHP dan MySQL: Panduan Langkah demi Langkah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
