2013-04-02 24 views
0

我有一个类别的边栏。当我点击一个类别时,它会显示位于该类别的工厂。显示侧栏中类别背后的工厂数量。 codeigniter

我在codeigniter中使用了连接。

现在我想显示一个类别中有多少工厂。例如:

Categories. 

Cars (2) 
Books (7) 
Animals (45) 

所以它很简单,必须显示有多少工厂具有该特定类别。

我试图做一个简单的count_all_results,但后来我得到了工厂的总数。但我希望他们能够根据类别的具体ID进行计数。

我的模型功能:

function categorieen_getall($segment3) 
{ 
    $this->db->where('categorieen.idcategorieen', $segment3); 
    $this->db->select('*'); 
    $this->db->from('bedrijfcategorieen'); 
    $this->db->join('categorieen', 'categorieen.idcategorieen = bedrijfcategorieen.idcategorieen'); 
    $this->db->join('bedrijven', 'bedrijven.idbedrijven = bedrijfcategorieen.idbedrijven'); 
    $query = $this->db->get(); 
    $result = $query->result(); 
    /* 
    echo '<pre>'; 
    print_r($result); 
    */ 
    return $result; 
} 

我的控制器功能:

function get_All() 
    { 
     $data['cat'] = $this->categorieen_model->categorieen_getall($segment3); 
     $this->load->view('views/sidebar', $data); 
    } 

我的观点:

<div id="sidebar"> 
    <?php 
    echo '<h3>Categorieën</h3>'; 
    echo ($this->db->count_all_results('categorieen')); 

    ?> 

     <hr> 
     <br/> 
     <?php 
     echo '<ul>'; 
     if(isset($cat) && is_array($cat)){ 
      foreach($links as $k => $value){ 

       echo '<li>'; 
       echo '<br>'; 
       echo '<a href="'.base_url().'home/categorie/'.$value->idcategorieen.' ">' .$value->Categorie. '</a>'; 
       echo '</li>'; 

      } 
     } 
     echo '<ul>'; 
     /* 
     if(isset($cat) && is_array($cat)){ 
      foreach($cat as $key => $row){ 
       echo "Categorie:"; echo $row->Categorie; 
       echo "<br />"; 
       echo $row->idcategorieen; 
       echo "<br />"; 
       echo $row->Bedrijfsnaam; 
      } 
     } 
     */ 
     ?> 
</div> 

我的数据库方案:

Factories 
-------- 
idfactories 
factoryname 
adress 
email 
... 

Categories 
---------- 
idcategories 
Category 


Factorycategories 
----------------- 
idfactorycategories 
idcategories 
idfactories 
+0

对不起人民,究竟是什么,你所遇到的问题? – Shoe

+0

我试图显示具有特定类别的记录数。所以在我的边栏我有类别。但我想要这样的工厂数量:Categorie1(2)其中2是具有该特定类别的工厂。 –

+0

我刚刚做了回声($ this-> db-> count_all_results('bedrijven'));但是那个节目把我所有的工厂当成一个整数。但我想要一个特定的ID。 –

回答

0

这是不太合适的,因为我知道有一种更好的方式来做到这一点,但这将做的工作适合你:

// Get categories 
$categories = array(); 

$query = $this->db->query("select * from `Categories` order by `idcategories`"); 

if($query->num_rows() > 0) 
{ 
    foreach($query->result_array() as $row) 
    { 
    $query_count = $this->db->query("select `idfactorycategories` from `Factorycategories` where `idcategories` = {$row['idcategories']}"); 
    $factory_count = $query_count->num_rows(); 

    $categories[] = array(
     'count' => $factory_count 
    ); 
    } 
} 

为了方便,你可以先拿到类别在foreach循环,然后为他们每个人提交factories表的查询以获得具有该相关类别ID的工厂的相关数量。

+0

我的工厂表中没有分类行。我使用了一个加入了id的factorycategories表。那么这会改变什么? –

+0

我不知道你的表格方案,但我认为你能够替换我的正确代码。 – MahanGM

+0

你能解释一下这行吗{$ row ['id']}“);? –

相关问题