我有一个带有类别的侧边栏。当我点击一个类别时,它会向我显示位于该类别中的工厂。
我使用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 :(得分: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的工厂的相关计数。
答案 1 :(得分:0)
我问了另一个问题。同样的问题,我解决了它。
用我得到的解决方案看看我自己的答案!
Count results in joined table and show between () in sidebar
感谢帮助我的人们:)