2014-02-13 60 views
1

我在codeigniter中使用activerecord。 我有一個數據庫,看起來像這樣:在activerecord中分組codeigniter

+------------+--------------|----------+ 
|clientName | websiteNumber|langNumber| 
|------------|--------------|----------| 
|john  | 1   | 2,5  | 
|john  | 2   | 2,3  | 
|mark  | 1   | 15,5  | 
|steve  | 1   | 5  | 
|steve  | 2   | 5  | 
|amy   | 1   | 15  | 
+------------+--------------+----------+ 

我想按客戶端名,然後通過websiteNumber,這樣的觀點看起來是這樣的:

john 
    websiteNumber 1 langNumber 2,5 
    websiteNumber 2 langNumber 2,3 
    mark 
    websiteNumber 1 langNumber 15,5 
    steve 
    websiteNumber 1 langNumber 5 
    websiteNumber 2 langNumber 5 
    amy 
    websiteNumber 1 langNumber 15 

我不擔心HTML或如何解析結果。我想知道使用一個查詢使用活動記錄讓它返回一個數組,然後我可以在視圖中循環的最佳方式。

我想到了一些奇怪的方法 - 比如在foreach循環中查詢,但感覺不對,我希望有更好的方法。

+0

成熟如果我最終只是在模型中進行另一個查詢。 '$ this-> db-> order_by('websiteNumber');''$ this-> db-> get('main')'。這有效,但我仍然想知道是否有辦法用一個查詢來完成。 – alanj

回答

0

您需要使用ORDER_BY方法:

$this->db->order_by('clientName', 'asc'); 
$this->db->order_by('websiteNumber', 'asc'); 

$query = $this->db->get('client'); 

return $query->result_row(); 
+0

這只是按clientName對它進行排序,然後按websiteNumber進行排序,我正在尋找返回一個數組,它將clientNumber和langNumber分組爲clientName。 – alanj

0

我不是一個有效記錄,專家,但我猜你應該只在客戶端名稱,然後group_concat用PHP explode的視景用group by

我對活動記錄的體會是,您應該只是期望得到與mysql_fetch_assoc相同的輸出。它不像Doctrine