2014-03-24 103 views
0

如果我想添加一个PHP语句在我的产品页面模板,看起来像这样:获取产品的相关类别的子类别打开车

<?php if (Product Has Parent Category = 146) { 
// Do this 
} elseif (Product Has Parent Category = 130) { 
// Do this 
} else { 
// Do this } ?> 

Ofcourse这个心不是代码,但我怎么会做这个?我基本上试图获得该子类别的父类别。任何帮助将不胜感激。谢谢!

UPDATE:

每个产品被放置在多个类别。所以我应该有父类别的阵列。这里是我找到的数据库结构。

product_to_category

product_id | category_id 

类别

category_id | parent_id | ... 
+0

在数据库中需要一个表,其中的字段是'id','product','parent-id'。这样你就可以知道你正在看的产品的父母是什么。 – Bangash

+0

我刚刚更新了上面的问题,并带有DB的屏幕截图。 – JCBiggar

回答

1

catalog/controller/product/product.php找到

$this->load->model('catalog/product'); 
//this will load product model 

添加

$cat_info = $this->model_catalog_product->getCategories($this->request->get['product_id']); 
// this will give all the category of product 

    foreach($cat_info as $cat_id){ 
    $cat = $this->model_catalog_category->getParentCategories($cat_id['category_id']); 
    //this will give the parent category  

     if(!empty($cat)){ 
      foreach($cat as $ids){ 
      $this->data['path_id'][] = $ids['path_id']; 
     } 
     } 
    } 

catalog/model/catalog/category.php添加

public function getParentCategories($category_id) { 
    $query = $this->db->query("SELECT path_id FROM " . DB_PREFIX . "category_path WHERE category_id = '" . (int)$category_id . "' AND '" . (int)$category_id . "'!=path_id"); 

    return $query->rows; 
} 

现在product.tpl

<?php 
if(in_array(20,$path_id)){ 
    echo 'exists'; 
}else{ 
    echo 'not exists'; 
} 
?> 
0

我能弄明白。我写了这段代码,并在我的product.tpl上使用它。

<?php 
    $current_product_id = "SELECT `product_id`,`category_id` FROM `oc_product_to_category` WHERE `product_id`='$product_id' "; 
    $current_product_ids = mysql_query($current_product_id); 
    $current_product_cat_ids=''; 

    while($current_product_cat_id = mysql_fetch_array($current_product_ids)){ 
     $current_product_cat_ids.=$current_product_cat_id['category_id'].','; 
    } 

    $parent_cat_path = mysql_query("SELECT `category_id`,`path_id` FROM `oc_category_path` WHERE `category_id` IN (" . rtrim($current_product_cat_ids, ',') . ")"); 
    $parent_cat_id_array=''; 
    while ($parent_cat_paths = mysql_fetch_array($parent_cat_path)) { 
     $parent_cat_id_array.=$parent_cat_paths['path_id'].','; 
    } 

    $parent_cat_id_array_str = implode(',',array_unique(explode(',', $parent_cat_id_array))); 

    if (strpos($parent_cat_id_array_str,'132') !== false) { 
    // Do This Here 
    } else { 
    //Do This Here 
    } ?>