Показывать количество заводов за категориями в боковой панели. CodeIgniter

У меня есть боковая панель с категориями. когда я нажимаю на одну категорию, это показывает мне фабрики, которые находятся в этой категории.

Я сделал это, используя объединения в codeigniter.

Теперь я хочу показать, сколько фабрик находится в категории. так например:

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

Поэтому просто показать, сколько фабрик имеет определенную категорию.

Я попытался сделать простой count_all_results, но потом я получу общее количество фабрик. но я хочу, чтобы они учитывались по конкретному идентификатору категорий.

моя модельная функция:

 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 

    Это не совсем подходит, потому что я знаю, что есть лучший способ сделать это , но это сделает для вас работу:

     // 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 чтобы получить соответствующее количество фабрик с этим идентификатором категории.

    Я задал еще один вопрос. с той же проблемой, и я решил это.

    Посмотрите на мой собственный ответ с решением, которое я получил!

    Подсчитайте результаты в объединенной таблице и покажите между () в боковой панели

    Спасибо за людей, которые мне помогли 🙂