以下是我的 category.php ,它使用switch语句来显示子类别或产品。当我点击一个子类别时,它会显示它应该的产品。但是,如果该类别没有SUBCATEGORIES,则根本不显示任何产品。
这是 switch语句需要更改的情况,整个 foreach循环需要在if语句中,或者是否有错误db 和id ...菜单中的所有猫都有一个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');
}
按类别功能获取产品...这将根据products表中的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 :(得分:0)
计算模型中返回的子类别的数量;如果它是0;将false
返回给控制器。然后进行测试以查看$listing
是否为数组,或者为false,并将适当的数据或消息输出给用户。
答案 1 :(得分:0)
尝试执行以下操作。首先你检查数据库,请求的类别有产品。然后检查它是否有子类别。如果sencond为false,则先选择并显示链接到主类别的产品。
如果主要类别没有产品,但它确实有子类别并且确实有产品,那么它的工作方式与您的代码相同。
如果主要类别没有产品且没有子类别,则根本没有显示它。