dscqrkvr9562034621 2016-10-12 03:49
浏览 25

如何列出顶级类别的子类别中的所有产品

My database category and product are:

Category Table : id,name,parent_id

Product Table : id,name,category_id

My Category menu is:

-Category A
--Category A1
--Category A2
---Category A2a etc..

Each product has only one category related:

Product1 -> Category A1
Product2 -> Category A2
Product3 -> Category A2a etc..

The code of all of the product category and subcategory

category.php?category_id=1 (exp. category A)

<?php
function FetchAllRows($sql) {
  global $db;
  $stmt=$db->prepare($sql);
  $stmt->execute();
  return $stmt->fetchAll();
}

function getCategoryChild($children) {
    $sql = "SELECT * FROM `category` WHERE `parent_id` = $children";
    $rows = FetchAllRows($sql);

    $sub_category_id = array();
    foreach($rows as $row) {
      // $sub_category_id[$row['id']] = getCategoryChild($row['id']);
      $cat = getCategoryChild($row['id']);
      $sub_category_id[] = array(
        'children' => $cat,
        'category_id' => $row['id']
      );
    }

    return $sub_category_id;
}

$a = getCategoryChild($category_id);
echo $in = join(',', array_fill(0, count($a), '?'));

$query="SELECT * FROM product WHERE category_id IN ($in)";

I tried this latest application. We did not get results. My English is not good. Hopefully presence. Until the array elements in I want to transfer into SQL.

  • 写回答

1条回答 默认 最新

  • doulei8475 2016-10-13 23:44
    关注

    I solved the problem.

    I delete these two lines.

    echo $in = join(',', array_fill(0, count($a), '?'));
    $query="SELECT * FROM product WHERE category_id IN ($in)";
    

    I invested only category_id 's.

      foreach($a as $index => $b) { 
        $subs[$index] = $b['category_id'];
      }
    
      $ids = implode($subs,',');
      $query = $db->query("SELECT * FROM `product` WHERE category_id IN($ids);");
    
    评论

报告相同问题?

悬赏问题

  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线