当前位置: 首页 > 知识库问答 >
问题:

列出嵌套类别中的产品

郑正阳
2023-03-14

我为我的项目工作分层类别和产品表。

类别表结构:

身份证-父母-所有权

1-0-计算机

1-0-电话

...

分类表行25107的计数。

产品表结构

ID-CAT-TITLE

1-1-产品名称在这里

我想要列表产品的当前类别和子类别。

echo $subcats = categoryChild(0);

输出为:6419818355183569562390504611890055611790590506905076120905090509050590510905116103905129051490514268614268814279090516610590517905189051990520905219219691912921899219231295618956199562095621956221426841426981427003596

我使用这个输出MySQL IN声明。最后生成这个SQL查询:

SELECT * FROM products WHERE cat IN (64198,18355,18356,95623,90504,6118,90505,6117,90506,90507,6119,6120,90508,90509,90510,90511,6103,90512,90513,90514,90515,142686,142688,142790,90516,6105,90517,90518,90519,90520,90521,91691,91692,92189,92190,92312,92313,95618,95619,95620,95621,95622,142684,142690,142692,142694,142696,142698,142700,3596)

这个查询非常慢。。。请帮帮我。

共有2个答案

阎懿轩
2023-03-14

使用此选项将允许您为parent_id参数获取cat和sub cat。它是嵌套的,可以与css和html一起使用。

`

     <ul class="" id="">

<?php
   function query($parent_id, $extension = null) { //function to run a query
   $query = mysql_query ( "SELECT * FROM exe_categories WHERE parent_id=$parent_id");
   return $query;
}
   function has_child($query) { //This function checks if the menus has childs or not
   $rows = mysql_num_rows ( $query );
   if ($rows > 0) {
    return true;
   } else {
    return false;
   }
}
function fetch_menu($query) {
   while ( $result = mysql_fetch_array ( $query ) ) {
     $id = $result ['id'];
     $title = $result ['title'];
     $menu_link = $result ['menu_link'];
     echo "<li><a href='{$menu_link}'><span>{$title}</span></a>";

        if (has_child ( query ( $id ) )) {
                    echo "<div>";
                    echo '<ul role="menu" class="fofc">';

                    fetch_menu ( query ( $id ) );
                    echo "</ul>";
                    echo "</div>";
        }

             echo "</li>";
      }
 }
   fetch_menu (query(1)); //call this function with 1 parent id

 ?>`
邰伟彦
2023-03-14

试试这个:

select p.id as id, p.title as title, c.title as category, c.id as catid
from products p JOIN
(select * from category where id = 1 OR parent = 1) c
on p.cat = c.id

看看它是如何在SQLFIDDLE上工作的

要列出所有层次结构级别,请编写如下代码:

// return all childs of category with id $cat
function list_childs($cat){
    // run above query and change (select * from category where id = 1 OR parent = 1)
    // to (select * from category where parent = $cat) and return results
}

然后在代码中为每个类别调用此函数

 类似资料:
  • 我有一个名为“产品类型”的WooCommerce产品类别,我试图列出该类别下的所有类别,但不是这些类别的子类别。例如,我有: 产品类型 碳化物米尔斯 钓鱼工具 儿童类别 我希望它列出“电石磨坊”和“打捞工具”,但不是“儿童类别”。 这是我的代码: 但它仍然返回“儿童类别”。我不知道为什么将深度限制为“1”并将“include_children”设置为“false”不能解决这个问题。

  • 使用Laravel 5.6,我试图从MySQL类别表中显示子类别的子类别。我想传递这个名字,并获得它的所有子类,而不管父类是什么。 类别表 期望结果 return App\Category::where('name','Child-1-P-2'))-

  • 我有一个类别模型,其中每个类别都可以是通用的或嵌套的。 类别: idparent_idtitle 要获取类别的子级和类别的所有嵌套子级,请使用带有递归的关系 与产品的关系 如何从基本类别和所有嵌套类别中获取所有产品?

  • 我有一个有趣的问题,对于Scala新手来说很难。< br >我需要合并两个列表:< br > 以下面的方式: 在Java中,我将使用两个嵌套循环: 我猜这是Scala中的一行代码,但是到目前为止我还不知道。

  • 我第一次使用woocommerce(wordpress)。 我试图在树形中显示所有产品类别及其各自的子类别,但我似乎不能像在后端使用拖放方式订购它们那样订购它们。 WP get_terms()只允许按id、名称、计数、slug和none排序。 我使用的代码是:

  • 桌子 类别模型 控制器方法 问题一 如果我正在查看蟋蟀的子类别,例如: 家- 问题二 如何删除所有子类别,同时删除主要类别。例如,如果我删除户外,那么板球和团队A应该被删除