首页 文章

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

提问于
浏览
0

下面是我的 category.php ,它使用switch语句来显示子类别或产品 . 当我点击一个子类别时,它会显示它应该的产品 . 但是,如果该类别没有SUBCATEGORIES,则根本不显示任何产品 .

这是 switch statement needs to be altered ,整个 foreach loop needs to be in an if statement 还是 something wrong with the db 和ids ...我的所有猫在菜单中都有一个parent_id = 0,子类对应于类别表的id,产品被分配了category_id . 这是一个加入的事情吗?

<?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;
}

2 回答

  • 0

    尝试做以下 . 首先你检查数据库,请求类别有产品 . 然后检查它是否有子类别 . 如果sencond为false,则首先选择并显示链接到主类别的产品 .

    如果主要类别没有产品,但它确实有子类别并且确实有产品,那么它的工作方式与您的代码相同 .

    如果主要类别没有产品且没有子类别,那么根本没有显示它 .

  • 0

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

相关问题