2013-03-20 23 views
0

從數據庫中列出類別時我遇到一些問題。Codeigniter統計同時列出類別的一個類別中的文章數

首先,我有一個名爲「視頻」的表,我在這裏存儲som視頻信息,如v_name,v_description和category_name。

在第二個名爲「Categories」的表中,我存儲了類別信息,如c_name和c_description。

OFC我有ID的每個表:)

但現在我想列出的類別,並在相同的查詢統計每個類別中每一個videoitem。

這是代碼,我不知道如何在模型中做現在和以後如何顯示視圖文件中的數字,所以pleace幫助我!

感謝您的時間和支持:d

$this->db->select('c.*'); 
    $this->db->from('categories as c'); 
    $this->db->join('videos as v', 'c.c_name = v.v_category', 'right'); 
    return $this->db->get()->result_array(); 
+1

你可以發佈SQL來創建兩個數據庫表嗎?這將有助於設置一個小提琴/演示。 – 2013-03-20 17:10:44

+0

嗚嗚......在表類別我有3個領域: 分類: C_ID '民' 的主鍵 c_name '文' c_description '文本' 在第二臺視頻 視頻: v_id,NUM,主Key v_name,text v_description,text category_name,text 因此,如果我在categories_table中有3個子集稱爲'Action','Drama','Thriller',我想在頁面類別中列出這些類別。 我可以列出類別沒有任何問題,但我想通過表視圖和字段category_name的幫助來顯示每個類別中有多少視頻。 – 2013-03-20 17:41:21

+0

最好更新問題,而不是在評論中提供有關問題的詳細信息。 – ekims 2013-03-27 23:41:08

回答

0

爲您的代碼工作,你需要兩個改變:

  • 首先你聯接類型應該是一個「左連接」。即使某個類別還沒有視頻,仍然會得到一個計數結果(0)。
  • 其次,您需要將結果分組以便能夠使用聚合函數count()。

嘗試這樣的:

$this->db 
->select('categories.c_name, COUNT(videos.id) as num_videos') 
->from('categories') 
->join('videos', 'categories.c_name = videos.v_category', 'left') 
->group_by('categories.c_name'); 

你也應該重新考慮你的數據庫設計。如果你在兩個表中都有id列(我假設它是主鍵),那麼你應該使用id列來定義表(外鍵)之間的關係,而不是名稱。

+0

我如何回覆數字? 和我能從類似描述中獲得更多信息嗎? 是的,我會創建一個未來的ID字段之間的關係 – 2013-03-20 17:54:50

+0

是的 - 你解決了它的JAVI!我非常感謝你的時間和支持! – 2013-03-20 17:59:40

相關問題