1
我需要显示最受欢迎的类别,这意味着课程最多的类别。我有一个databasase架构,其中包括:如何获得最受欢迎的类别?
tbl_categories:id, name ; tbl_category_courses: cat_id, course_id ; tbl_courses: id,name,description
我的逻辑是这样的,先得到所有的类别和之后的foreach类别计算所有的课程。
$query = $this->db->select('*')
->from('categories')
->limit($limit)
->get();
$data = array();
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$nr_of_courses = $this->db->select('*')
->from('course_categories')
->where('course_categories.category_id', $row->id)
->join('courses', 'courses.id=course_categories.course_id')
->count_all_results();
$row->course_number = $nr_of_courses;
$data[] = $row;
}
}
这是我的代码到现在为止,所有我可以检索的类别有多少课程,每个人都有,但我不能过滤。我需要显示前10名。 有人可以提供一些指导和帮助。我也知道在foreach循环中计数查询是不好的设计,我怎么能改进这个代码,因为我需要在主应用程序页面上使用它,它需要顺利运行。
你试过把极限放在上面吗? – tomexsans 2012-02-09 16:14:38
限制在哪里?我真的不需要限制,我需要排序的结果与最$ nr_of_courses的类别,我认为...我不认为这只能从sql实现...或者如果它可以请别人共享 – Mythriel 2012-02-09 16:20:59