php怎么循环查询子分类
原创PHP循环查询子分类的实现方法
在PHP开发中,我们频繁会遇到需要查询数据库中的子分类的需求。为了实现这一功能,我们可以使用递归查询的方法。下面将详细介绍怎样使用PHP循环查询子分类。
准备工作
首先,确保你的数据库中有一个存储分类信息的表,例如:
CREATE TABLE category (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
parent_id INT DEFAULT 0
);
其中,id
描述分类ID,name
描述分类名称,parent_id
描述父分类ID。
连接数据库
在起始查询之前,需要先连接到数据库:
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接未果: " . $conn->connect_error);
}
循环查询子分类
下面是一个递归函数,用于查询子分类:
function getSubCategories($conn, $parent_id = 0) {
$sql = "SELECT * FROM category WHERE parent_id = $parent_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<h4>" . $row["name"] . "</h4>"; // 输出分类名称
// 递归查询子分类
getSubCategories($conn, $row["id"]);
}
}
}
调用函数并输出因此
现在,我们可以调用getSubCategories
函数,起始查询并输出子分类:
getSubCategories($conn);
关闭数据库连接
查询完成后,关闭数据库连接:
$conn->close();
这样,我们就可以通过递归查询的做法输出所有的子分类,并将因此以HTML的<h4>
标签格式返回。