2013-02-18 65 views
0

Codeigniter不回数据库结果。 数据库表“类别”和“子类别”Codeigniter JOIN不回DB结果

DB玛:

Categor 
----------------------------- 
ID  Name 
---------------------------- 
1  Fishing 
2  Hunting 
3  Test Category 

Sub_category 
----------------------------- 
ID  cat_id  name 
---------------------------- 
1  1   Fishing rod 
2  2   Hunting ammunition 
3  3   Test sub category 

我想列出所有子类的一些类别。当some1点击钓鱼类别我想要显示所有子类别的钓鱼。我的代码是这样的:

Controller: 
     public function get_sub_category($id = 0) 
     { 
      $this->load->model('front_m');  
      $data['sub_cat'] = $this->front_m->show_sub_cat($id);   
      $this->template->set_theme('zend')->set_layout('front.html') 
          ->build('sub_category',$data); 
    } 
    MODEL: 

    public function show_sub_cat($id=0) 
{ 
    $this->query = $this->db->select('*'); 
    $this->query = $this->db->from('category'); 
      $this->query = $this->db->where('id='.$id'); 
    $this->query = $this->db->join('sub_category', 'sub_category.cat_id=category.id'); 
    $this->query = $this->db->query('SELECT * FROM category'); 
    $this->query = $this->db->get(); 

    if ($this->query->num_rows() > 0) { 
     $this->query->result(); 
    } 
    return $this->query ;  
} 

什么是我一直都有数据库错误或毛坯页。

回答

0

根据你的问题,这听起来像你过度思考,但我也有点困惑。我听到的是:如何基于某人点击主类别ID来获取我的子类别?如果是这样的话,那么你的方式就会比它所需要的更复杂。

模型

public function show_sub_cat($catid=NULL) 
{ 
$result = $this->db->get_where('sub_category',array('cat_id'=>$catid)); 
if ($result->num_rows()>0) 
{ 
return $result->result(); 
} 

} 
0
$sql_query ="SELECT 
       c.name, 
       sc.* 
      FROM Category as c 
      LEFT JOIN Sub_category as sc ON sc.cat_id = c.ID 
      WHERE c.ID = $id"; 
return $this->db->query($sql_query)->result();