2012-04-03 66 views
0

傳遞databa所以基本上我有個幫手 -笨:從幫助從兩個數據庫表

function records() 
{   
    $ci = get_instance();      
    $ci->db->order_by("date", "desc"); 
    $ci->db->limit(20); 
    $query = $ci->db->get('records'); 
    $data =array(); 
    foreach($query->result_array() as $orders) 
    { 
    $data[] = $orders; 
    }    
    return $data; 
} 

我需要從它傳遞的數據進行查看,但目前我只從表中記錄的數據傳遞。另外,在我從記錄中獲得$ data []後,我需要檢查當前記錄ID,然後從另一個用戶表中獲取相同的$ data []所有用戶詳細信息。我該怎麼做?所以基本上我最先從記錄中獲取所有數據,檢查記錄是什麼用戶,然後用get_where('users',array('id'=> $ data ['user_id']))搜索該用戶。並將用戶數據添加到新數組或同一個$ data []數組中。這是可行的嗎?如果是,請給我舉個例子。

+1

首先總是創建數據庫連接的模型。助手不用於使用數據庫查詢。使用帶有CI的MVC結構輕鬆構建您的應用程序。 http://codeigniter.com/user_guide/overview/mvc.html – safarov 2012-04-03 17:18:52

+0

我可以在助手中加載模型嗎? – 2012-04-03 17:22:11

+0

好的,無論如何,關於我的第一個問題,你能幫助我嗎? – 2012-04-03 17:30:14

回答

1

我想你想做一個連接?

$ci->db->order_by("date", "desc"); 
    $ci->db->limit(20); 
    $query = $ci->db->from('records')->join('users', 'records.user_id=users.id')->get(); 

http://codeigniter.com/user_guide/database/active_record.html

確保您修改查詢中的記錄表中​​引用用戶的ID使用正確的字段名稱。上述評論是正確的 - 助手絕對不是查詢的地方。真的,我想不出任何使用get_instance在助手中獲取CI對象的好例子,它們可能應該是獨立於CI的函數。

0

首先;總是建議您使用模型進行數據庫操作。爲了從模型中檢索數據庫信息,還建議您使用庫。助手可以用於你並不總是需要數據庫的目的,如日期計算,搜索功能等。

其次;如果我理解你是正確的,你將表中的記錄轉換爲數組,然後你想要檢查用戶是否在該數組中有記錄(或類似的東西),用戶詳細信息來自另一個數據庫?如果是,那麼只需將所有記錄存入數組,將用戶詳細信息(例如用戶標識符)獲取到另一個數組或變量中。剩下的部分都是陣列操作。