php怎么循环查询子分类
摘要:
在PHP中,我们可以使用循环来查询子分类。在以下的示例中,我们将使用一个简单的分类表作为数据库的示例,并通过循环来查询子分类。1、我们需要创建一个数据库,以及一个简单的分类表。我们可以使用以下的SQL语句来创建表:CRE...
在PHP中,我们可以使用循环来查询子分类。在以下的示例中,我们将使用一个简单的分类表作为数据库的示例,并通过循环来查询子分类。
1、我们需要创建一个数据库,以及一个简单的分类表。我们可以使用以下的SQL语句来创建表:
CREATE TABLE categories ( id INT(11) AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), parent_id INT(11) );
2、我们需要填充一些示例数据到分类表中。我们可以使用以下的SQL语句来填充数据:
INSERT INTO categories (name, parent_id) VALUES ('电子设备', NULL), ('手机', 1), ('电脑', 1), ('平板电脑', 1), ('苹果手机', 2), ('安卓手机', 2), ('华为手机', 2), ('戴尔电脑', 3), ('联想电脑', 3), ('iPad', 4), ('Surface', 4);
3、我们可以开始编写PHP代码来循环查询子分类。以下是一个简单的示例代码:
// 建立与数据库的连接(请根据自己的数据库情况修改连接信息) $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 定义一个函数,用于递归查询子分类 function querySubcategories($parent_id, $conn) { $sql = "SELECT id, name FROM categories WHERE parent_id = $parent_id"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo $row["name"] . " "; // 递归查询子分类 querySubcategories($row["id"], $conn); } } } // 查询顶级分类 $query = "SELECT id, name FROM categories WHERE parent_id IS NULL"; $result = $conn->query($query); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo $row["name"] . " "; // 调用函数查询子分类 querySubcategories($row["id"], $conn); } } else { echo "没有任何分类数据"; } // 关闭数据库连接 $conn->close(); ?>