php分类展示商品,如何实现无限分类 点击一个商品分类 显示本分类以及所有子分类的商品?...
时间: 2024-05-12 20:14:26 浏览: 6
实现无限分类可以使用递归方法,下面是一个简单的示例代码:
```
function getSubCategories($cat_id) {
$sub_categories = array();
$sql = "SELECT * FROM categories WHERE parent_id = $cat_id";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$sub_categories[] = $row;
// 递归获取子分类
$sub_categories = array_merge($sub_categories, getSubCategories($row['cat_id']));
}
return $sub_categories;
}
// 获取所有子分类的商品
function getProductsByCategory($cat_id) {
$all_categories = array();
// 获取当前分类及所有子分类
$all_categories = array_merge($all_categories, getSubCategories($cat_id));
$all_categories[] = array('cat_id' => $cat_id);
// 查询所有分类的商品
$product_sql = "SELECT * FROM products WHERE cat_id IN (";
foreach ($all_categories as $cat) {
$product_sql .= $cat['cat_id'] . ",";
}
$product_sql = rtrim($product_sql, ",") . ")";
$product_result = mysqli_query($conn, $product_sql);
$products = array();
while ($product_row = mysqli_fetch_assoc($product_result)) {
$products[] = $product_row;
}
return $products;
}
```
以上代码中,`getSubCategories`函数用于递归获取所有子分类,`getProductsByCategory`函数用于获取当前分类及所有子分类的商品。你可以根据自己的需求进行修改。