繁体   English   中英

Category.php-产品以子类别显示,但如果没有子类别则不显示类别

[英]Category.php - products show in subcats but not in categories if it has no subcategories

下面是我的category.php ,它使用switch语句显示子类别或产品。 当我单击一个子类别时,它会像预期的那样显示产品。 但是,如果该类别没有子类别,则根本不会显示任何产品。

是在这种情况下, 需要更改switch语句 ,整个foreach循环是否需要在if语句中,或者db和id是否有问题 ...菜单中的所有猫都具有parent_id = 0 ,子猫对应于类别表的ID,则为产品分配一个category_id。 这是JOIN吗?

<?php
foreach ($listing as $key => $list){
echo "<img src='".$list['thumbnail']."' border='0' align='left' />";
echo "<h4>";

switch($level){
    case "1":
    echo anchor('welcome/cat/'.$list['id'],$list['name']);
    break;
    case "2":
    echo anchor('welcome/product/'.$list['id'],$list['name']);
    break;

}
echo "</h4>";
echo "<p>".$list['shortdesc']."</p><br style='clear:both'/>";
}
?>

任何帮助深表感谢。

$ level位于欢迎控制器中。

function cat($id){

    $cat = $this->MCats->getCategory($id);
    if (!count($cat)){
        redirect('welcome/index','refresh');
    }
    $data['title'] = "Company |" .$cat['name'];

    if ($cat['parentid'] < 1){
        // show other cats
        $data['listing'] = $this->MCats->getSubCategories($id);
        $data['level'] = 1;

        }else{
        // show products
        $data['level'] = 2;
        $data['listing'] = $this->MCats->getProductsByCategory($id);
        }
        $data['category'] = $cat;
        $data['main'] = 'category';
        $data['navlist'] = $this->MCats->getCategoriesNav();
        $this->load->vars($data);
        $this->load->view('template');
}

按类别获取产品功能...这将根据产品表中的category_id选择产品。 仍然没有演出...

 function getProductsByCategory($catid){
    $data = array();
    $this->db->select('id,name,shortdesc,thumbnail');
    $this->db->where('category_id',$catid);
    $this->db->where('status','active');
    $Q = $this->db->get('products');
    if ($Q->num_rows() > 0){
        foreach ($Q->result_array() as $row){
            $data[] = $row;
        }
    }
    $Q->free_result();
    return $data;
}

计算模型中返回的子类别的数量; 如果为0; 向控制器返回false 然后进行测试以查看$listing是数组还是false,然后将适当的数据或消息输出给用户。

尝试执行以下操作。 首先您签入数据库,要求的类别是否有产品。 然后检查是否有子类别。 如果sencond为假,则首先选择并显示链接到主要类别的产品。

如果主要类别没有产品,但是确实有子类别,而确实有产品,则它按照您的代码中的描述工作。

如果主要类别没有产品,也没有子类别,那么根本没有必要显示它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM