php-产品显示在子类别中,但如果没有子类别,则不显示在类别中
下面是我的category.php,它使用switch语句来显示子类别或产品。当我点击一个子类别时,它会像预期的那样显示产品。但是,如果类别没有子类别,则根本不会显示任何产品 在这种情况下,是否需要更改switch语句,整个foreach循环需要在if语句中,或者db和id是否有问题。。。菜单中我所有的猫都有一个父类id=0,子类对应于类别表的id,产品被分配了一个类别id。这是连接吗php-产品显示在子类别中,但如果没有子类别,则不显示在类别中,php,codeigniter,menu,navigation,e-commerce,Php,Codeigniter,Menu,Navigation,E Commerce,下面是我的category.php,它使用switch语句来显示子类别或产品。当我点击一个子类别时,它会像预期的那样显示产品。但是,如果类别没有子类别,则根本不会显示任何产品 在这种情况下,是否需要更改switch语句,整个foreach循环需要在if语句中,或者db和id是否有问题。。。菜单中我所有的猫都有一个父类id=0,子类对应于类别表的id,产品被分配了一个类别id。这是连接吗 <?php foreach ($listing as $key => $list){ echo "
<?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'/>";
}
?>
计算模型中返回的子类别的数量;如果是0;将
false
返回控制器。然后进行测试,查看$listing
是数组还是false,并向用户输出相应的数据或消息。尝试执行以下操作。首先,您要签入数据库,请求的类别是否有产品。然后检查它是否有子类别。如果sencond为false,则选择first并显示链接到主类别的产品
如果主类别没有产品,但它确实有子类别,并且确实有产品,那么它将按照代码中的描述工作
如果主类别没有产品和子类别,那么显示它就毫无意义。如何获得
$level
变量?在code.Okei中看不到这一点。类别没有子类别,但有链接到它的产品吗?你的数据库设计允许吗?是的,我相信是的。。。两个表分类产品。类别有id、名称、父id。子类别通过父id链接。产品有类别id链接到每个类别,但当我尝试将类别id设置为cat而不是子类别时,没有产品显示。因此,每个子类别都是设置了父类别id的类别。然后在导航栏中显示类别之前,你应该只显示那些有产品或子类别有产品的类别。我的导航栏有5个主要类别,单击后会显示产品页面后面的子类别列表。然而,在我没有子类别的猫身上,根本没有显示任何产品。我需要一些工作来在我的猫身上展示产品,没有子类OK,例如我有id为5的特价商品,我设置了一个id为5的产品游泳池,但仍然没有展示。。。我是否需要加入我的功能。。。我还发布了“按类别获取产品”功能。我建议您首先尝试在phpMyAdmin或类似的程序中执行您想要的操作,然后将其转换为代码并在那里进行测试。那你现在肯定会的。
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');
}
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;
}