创建数据库和表
1、创建数据库:

(图片来源网络,侵删)
创建一个数据库来存储菜单数据,可以创建一个名为menus的数据库。
2、创建表:
在menus数据库中创建一个表,用于存储菜单项的信息,以下是一个示例SQL语句,用于创建一个名为menu的表:
CREATE TABLEmenu(idint(11) NOT NULL AUTO_INCREMENT,textvarchar(200) NOT NULL,urlvarchar(200) NOT NULL,parent_idint(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