创建数据库和表
1、创建数据库:
(图片来源网络,侵删)
创建一个数据库来存储菜单数据,可以创建一个名为menus
的数据库。
2、创建表:
在menus
数据库中创建一个表,用于存储菜单项的信息,以下是一个示例SQL语句,用于创建一个名为menu
的表:
CREATE TABLEmenu
(id
int(11) NOT NULL AUTO_INCREMENT,text
varchar(200) NOT NULL,url
varchar(200) NOT NULL,parent_id
int(11) DEFAULT NULL, PRIMARY KEY (id
) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在这个表中,id
是自增的唯一标识符,text
是菜单项的文本,url
是菜单项对应的URL,parent_id
是它的父菜单项的ID,如果一个菜单项没有父菜单项,那么它的parent_id
字段就为空。
插入样例数据
(图片来源网络,侵删)
为了展示如何构建菜单,可以在menu
表中插入一些样例数据:
INSERT INTOmenu
(id
,text
,url
,parent_id
) VALUES (1, 'Home', '/home', NULL), (2, 'About', '/about', NULL), (3, 'Products', '/products', NULL), (4, 'Laptops', '/products/laptops', 3), (5, 'Desktops', '/products/desktops', 3), (6, 'Accessories', '/products/accessories', 3), (7, 'By Brand', '/products/by-brand', 3), (8, 'Acer', '/products/by-brand/acer', 7), (9, 'ASUS', '/products/by-brand/asus', 7), (10, 'Dell', '/products/by-brand/dell', 7), (11, 'HP', '/products/by-brand/hp', 7), (12, 'Lenovo', '/products/by-brand/lenovo', 7), (13, 'Tablets', '/products/tablets', 3), (14, 'iPad', '/products/tablets/ipad', 13), (15, 'Samsung', '/products/tablets/samsung', 13);
使用PHP读取数据并生成HTML菜单
1、连接数据库:
使用PHP中的mysqli
扩展来连接MySQL数据库,并选择相应的数据库和字符集。
$mysqli = new mysqli("localhost", "username", "password", "menus"); if ($mysqli->connect_errno) { echo "连接失败:" . $mysqli->connect_error; exit(); }
2、查询数据:
(图片来源网络,侵删)
从menu
表中查询没有父菜单项的菜单项,并在每个菜单项下创建一个<ul>
$result = $mysqli->query("SELECT * FROMmenu
WHEREparent_id
IS NULL"); while ($row = $result->fetch_assoc()) { echo '<ul>'; echo '<li><a href="' . $row["url"] . '">' . $row["text"] . '</a>'; $sub_result = $mysqli->query("SELECT * FROMmenu
WHEREparent_id
=" . $row["id"]); if ($sub_result->num_rows > 0) { echo '<ul>'; while ($sub_row = $sub_result->fetch_assoc()) { echo '<li><a href="' . $sub_row["url"] . '">' . $sub_row["text"] . '</a></li>'; } echo '</ul>'; } echo '</li>'; echo '</ul>'; }
3、关闭数据库连接:
完成数据读取后,记得关闭数据库连接以释放资源。
$mysqli->close();
通过以上步骤,您可以使用PHP和MySQL构建一个无限级别的导航菜单,创建一个数据库和表来存储菜单项的数据,然后插入一些样例数据,使用PHP从数据库中读取数据,并使用HTML和CSS生成菜单结构,这种方法不仅灵活,而且可以根据需求动态调整菜单内容。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/61048.html