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

智能输出类别和子类别

东方震博
2023-03-14

我试图在html表中输出类别和子类别,我有一个问题,即所有的子类别都打印在所有的类别下

我用这个公式

  • cat_id
  • 猫名
  • 母猫

我想打印父主类别下的每个子类别

我使用这个代码

$cats=$mysqli->query("select cat_id,cat_name,cat_parent from cats where cat_parent='0'");
while($row_cats=$cats->fetch_assoc()){

    $cats_sub=$mysqli->query("select cat_id,cat_name,cat_parent from cats where cat_parent='".$row_cats['cat_id']."'");
    while($row_cats_sub=$cats_sub->fetch_assoc()){
        $cats_array_sub[]=$row_cats_sub; 
    }
    $cats_array[]=$row_cats;
}

$cats->free_result();
$cats_sub->free_result();


$t->assign('cats_array',$cats_array);
$t->assign('cats_array_sub',$cats_array_sub);
$t->display('display.tpl'); 

还有显示器。第三方物流是

<table width="100%" border="0" cellpadding="5">
    <tr valign="top">
        {assign var="i2" value=0}
        {foreach from=$cats_array item=cat}

        {if $i2 == 5}
    </tr>
    <tr>
        {assign var="i2" value=0}
        {/if}

        <td style="width:20%;">

            <div style="background-color:silver;">
                {$cat.cat_name}
            </div>
            <table>
                {foreach from=$cats_array_sub item=sub}
                <tr>
                    <td>{$sub.cat_name}</td>
                </tr>
                {/foreach}
            </table>

        </td>
        {assign var="i2" value=$i2+1}  
        {/foreach}
    </tr> 
</table>

有什么想法吗,伙计们

问候

共有1个答案

阎晗日
2023-03-14

以下代码应该可以解决您的问题:

$cats=$mysqli->query("select cat_id,cat_name,cat_parent from cats where cat_parent='0'");
while($row_cats=$cats->fetch_assoc()){

    $cats_sub=$mysqli->query("select cat_id,cat_name,cat_parent from cats where cat_parent='".$row_cats['cat_id']."'");
    while($row_cats_sub=$cats_sub->fetch_assoc()){
        $cats_array[$row_cats['cat_id']]['sub'][]=$row_cats_sub; 
    }
    $cats_array[$row_cats['cat_id']]['cat_id']=$row_cats['cat_id'];
    $cats_array[$row_cats['cat_id']]['cat_name']=$row_cats['cat_name'];
    $cats_array[$row_cats['cat_id']]['cat_parent']=$row_cats['cat_parent'];
}

$cats->free_result();
$cats_sub->free_result();

$t->assign('cats_array',$cats_array);
$t->display('display.tpl');

模板应该是这样的:

<table width="100%" border="0" cellpadding="5">
    <tr valign="top">
        {assign var="i2" value=0}
        {foreach from=$cats_array item=cat}

        {if $i2 == 5}
    </tr>
    <tr>
        {assign var="i2" value=0}
        {/if}

        <td style="width:20%;">

            <div style="background-color:silver;">
                {$cat.cat_name}
            </div>
            <table>
                {foreach from=$cats_array.sub item=sub}
                <tr>
                    <td>{$sub.cat_name}</td>
                </tr>
                {/foreach}
            </table>

        </td>
        {assign var="i2" value=$i2+1}  
        {/foreach}
    </tr> 
</table>

我不知道你为什么需要12美元
如果未使用,请将其从模板中删除。

 类似资料:
  • 我正在为我目前所拥有的而挣扎。所以我想循环通过一个单一的父类别,并输出所有的子类别帖子与一个链接。 我可以让它工作,但它也会循环所有父类别。 所以我想要的是 我的当前代码如下所示,它为每个父级和子级类别创建了一个列表,因此: 我觉得我的$args也许能解决这个问题。 这表明:

  • 我已经为产品创建了一些自定义类别,它有子类别,子类别还有更多的子类别。现在我首先显示主要类别。如果我在那里显示子类别,那么将显示与该类别及其子类别相关的所有子类别。我想一步一步地向他们展示。也就是说,如果用户单击主类别,则会转到其子类别页面。如果用户单击其子类别之一,则应转到子类别,如果没有子类别,则显示产品。这是什么代码 它覆盖了以前的排序顺序。也就是说,如果从仪表板中,我们按排序顺序给出2到3

  • 我的类别表设计如下 我有三个级别的类别 < li >父项 < li >孩子 < li >子系 如何以下列方式显示它们? (SELECT*From类别):我得到以下数组,如下所示

  • 问题内容: 是否有关于哪些内置库和标准库类不可归类(“最终”)的规则? 从Python 3.3开始,以下是一些示例: 我发现了一个问题,涉及用C语言和纯Python实现“最终”类。 我想了解什么原因可以解释为什么首先选择一个班级是“最终的”。 问题答案: 在Python中,类最终是有两个原因的。 1.违反类别不变式 遵循Singleton模式的类具有不变的数量,即实例数量有限(预定)。子类中对此不

  • 我正在使用产品的ms-sql db构建一个 asp.net 网站 - 每个产品属于一个或多个类别,每个类别可以属于一个或零个父类别。 用户应该能够选择零个或多个类别,但我想不出一种方法来只返回所选类别中的产品。 我有其他正在工作的过滤器(最低价格,品牌名称等),但不能让类别工作。 例如: 如果选择了类别1,则应返回具有最终父类别为类别1的类别的所有产品。 如果选择了子类别1.1和子类别1.2,则所

  • 我目前有一个代码片段,其中对于每个类别,它将找到子类别: 将递归获取一个类别的子级: 目前,使用,只检索子类别的子类别,因此如果每个子类别都有自己的子类别,则不会将其保存到子类别中。 我如何显示子子类别给我们的子类别? 我想用我的代码做的是获取一个父级,获取它的子级,然后将这些子级中的每一个视为父级,递归地获取它的子级,但是我的JSON输出并没有反映这一点。只有父对象有子对象-子对象没有子对象(尽