MySQL是業(yè)界常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),支持多種操作系統(tǒng)平臺(tái),如Windows、Linux、Unix等。在網(wǎng)站運(yùn)營(yíng)中,常常會(huì)需要使用MySQL來生成菜單,其中二級(jí)菜單是常見的需求。下面讓我們通過代碼演示來了解如何使用MySQL來生成二級(jí)菜單。
CREATE TABLE `menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `parent_id` int(11) NOT NULL DEFAULT '0', `url` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `menu` (`id`, `name`, `parent_id`, `url`) VALUES (1, '首頁', 0, '/index.html'), (2, '新聞', 0, '/news.html'), (3, '國(guó)內(nèi)新聞', 2, '/news/domestic.html'), (4, '國(guó)際新聞', 2, '/news/international.html'), (5, '體育', 0, '/sports.html'), (6, '足球', 5, '/sports/football.html'), (7, '籃球', 5, '/sports/basketball.html'); SELECT * FROM menu WHERE parent_id = 0;
以上代碼將創(chuàng)建一個(gè)名為menu的表,這個(gè)表中包含了id、name、parent_id和url共4個(gè)字段,其中parent_id用于表示菜單的層級(jí)關(guān)系。如果一個(gè)菜單項(xiàng)是一級(jí)菜單,則parent_id為0;如果一個(gè)菜單項(xiàng)是二級(jí)菜單,則parent_id為對(duì)應(yīng)的一級(jí)菜單的id。
為了生成二級(jí)菜單,我們需要使用MySQL的查詢語句來選擇所有parent_id為0的菜單項(xiàng),然后遍歷這些菜單項(xiàng),并查詢它們的子菜單。下面是示例代碼:
$parent_menus = mysqli_query($conn, 'SELECT * FROM menu WHERE parent_id = 0'); while ($parent = mysqli_fetch_assoc($parent_menus)) { echo $parent['name'] . ':'; $sub_menus = mysqli_query($conn, 'SELECT * FROM menu WHERE parent_id = ' . $parent['id']); while ($sub = mysqli_fetch_assoc($sub_menus)) { echo '' . $sub['name'] . ''; } echo '
'; }
以上代碼中,我們首先使用mysqli_query函數(shù)查詢parent_id為0的菜單項(xiàng)。然后使用mysqli_fetch_assoc函數(shù)將查詢結(jié)果中的每個(gè)菜單項(xiàng)保存到$parent變量中,并輸出它們的名稱。接著,我們?cè)俅问褂胢ysqli_query查詢每個(gè)一級(jí)菜單對(duì)應(yīng)的二級(jí)菜單,并輸出它們的名稱和鏈接地址。
通過以上代碼,我們可以使用MySQL生成帶有二級(jí)菜單的網(wǎng)站菜單。MySQL作為一種高效、可靠的數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于各種類型的網(wǎng)站建設(shè)中。