目前在我的模型中,我在' XYZ'中进行了硬编码。这有效,因为我得到了正确数量的XYZ建筑物,但还有50个其他建筑物也需要。对所有建筑物进行硬编码对我来说没有意义。
如何将建筑物作为参数传递。
我的查看文件如下所示:
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="x_panel tile">
<div class="x_title">
<h2>Buildings</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<h4>Total work requests</h4>
<?php foreach ($buildings as $bldg){?>
<div class="widget_summary">
<div class="w_left w_25">
<span><?php echo $bldg['Building_Code'];?></span>
</div>
<div class="w_center w_55">
<div class="progress">
<div class="progress-bar bg-green" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 66%;">
<span class="sr-only">60% Complete</span>
</div>
</div>
</div>
<div class="w_right w_20">
<span><?php echo $countBuildings; ?>
</span>
</div>
<div class="clearfix"></div>
</div>
<?php } ?>
</div>
</div>
</div>
&#13;
我的控制器看起来像这样:
$data["countBuildings"]= $this->Buildings_model->getBldgCount('XYZ');
$this->load->view('main/header');
$this->load->view('main/body', $data);
$this->load->view('main/footer');
&#13;
我的模型看起来像这样:
public function getBldgCount($queryBuilding){
$this->db->select('*');
$this->db->where('Building_Code', $queryBuilding);
$this->db->from('work_requests');
$count = $this->db->count_all_results();
return $count;
}
&#13;
答案 0 :(得分:0)
您需要更改方法。 不需要对构建代码进行硬编码。你甚至不需要传递建筑规范。
您需要在查询中使用group by,以便返回包含count的所有建筑物。您的模型函数将如下所示:
public function getBldgCount(){
$this->db->select('Building_Code, COUNT(id) as total');
$this->db->group_by('Building_Code');
$this->db->get('work_requests');
}
答案 1 :(得分:0)
您需要更改方法。 不需要对构建代码进行硬编码。您甚至不需要传递建筑规范。
您需要在查询中使用group by,以便返回具有count的所有建筑物。
public function getBldgCount(){
$this->db->select('Building_Code, COUNT(id) as total');
$this->db->group_by('Building_Code');
$this->db->get('work_requests');
}
答案 2 :(得分:0)
在您的控制器中,您必须在$data
建筑物数量中设置数组值。
在控制器中替换:
$data["countBuildings"]= $this->Buildings_model->getBldgCount('XYZ');
$this->load->view('main/header');
$this->load->view('main/body', $data);
$this->load->view('main/footer');
。通过强>
foreach($data['buildings'] as $k=>$v){
$data["buildingcount"][$k]["count"] = $this->Buildings_model->getBldgCount($v);
}
$this->load->view('main/header');
$this->load->view('main/body', $data);
$this->load->view('main/footer');
您必须根据需要更新视图代码以适应新建筑物计数数据。
更新了视图:
<div class="col-md-4 col-sm-4 col-xs-12">
<div class="x_panel tile">
<div class="x_title">
<h2>Buildings</h2>
<div class="clearfix"></div>
</div>
<div class="x_content">
<h4>Total work requests</h4>
<?php foreach ($buildings as $bk=>$bldg){?>
<div class="widget_summary">
<div class="w_left w_25">
<span><?php echo $bldg['Building_Code'];?></span>
</div>
<div class="w_center w_55">
<div class="progress">
<div class="progress-bar bg-green" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 66%;">
<span class="sr-only">60% Complete</span>
</div>
</div>
</div>
<div class="w_right w_20">
<span><?php echo $buildingcount[$bk]['count']; ?>
</span>
</div>
<div class="clearfix"></div>
</div>
<?php } ?>
</div>
</div>
</div>