如何用PHP和MySQL构建动态导航菜单?

创建数据库和表

1、创建数据库

如何用PHP和MySQL构建动态导航菜单?插图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字段就为空。

插入样例数据

如何用PHP和MySQL构建动态导航菜单?插图3
(图片来源网络,侵删)

为了展示如何构建菜单,可以在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、查询数据

如何用PHP和MySQL构建动态导航菜单?插图5
(图片来源网络,侵删)

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

(0)
上一篇 2024年9月26日 11:05
下一篇 2024年9月26日 11:15

相关推荐