我正在使用Codeignitor开发School erp。我在计算行数时遇到问题。在这里,让我解释一下。
这是我的班级表。
这是我的看法因此,我想从上课的学生中算出学生,并在班级名称下方的框中打印数字。如您所见,id
fro表类与Table Student中笨拙的class_id
相匹配。
这是我的标准代码:-
//get class list in box
function getClassList() {
$query = $this->db->select('*')->get('classes');
return $query->result_array();
}
我的控制器:-
function classlist() {
if (!$this->rbac->hasPrivilege('student', 'can_view')) {
access_denied();
}
$this->session->set_userdata('top_menu', 'Student Information');
$this->session->set_userdata('sub_menu', 'student/search');
$data['title'] = 'Student Search';
$clist = $this->student_model->getClassList();
$data['clist'] = $clist;
$this->load->view('layout/header', $data);
$this->load->view('student/studentSearch', $data);
$this->load->view('layout/footer', $data);
}
}
和这里是我的查看页面:-
<?php foreach ($clist as $key ) {
?>
<div class="info-box">
<a href="<?php echo base_url();?>student/stdlists/<?php echo $key['id']; ?>">
<span class="info-box-icon bg-green"><i class="fa fa-child"></i></span>
<div class="info-box-content">
<span class="info-box-text"><?php echo $key['class']; ?></span>
<span class="info-box-number">**I want to Print The Total Count here**</span>
</div>
</a>
</div>
<?php } ?>
</div>
您需要在getClassList函数中进行左联接和分组。
最终查询应该是这样的:
select count(t.id) as students_in_class, s.*
from class s
left join student t on s.id = t.class_id
group by t.class_id
但是您使用的是ORM,但我并不熟悉。...
希望这对您有用。
$this->db->where('id','class_id');
$this->db->get('student');
$number_of_rows=$this->db->num_rows();
print_r($number_of_rows);