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