2011-12-03 283 views
1

在我的CodeIgniter項目中,我得到了項目列表併成功在頁面上輸出它們。但是,應該使用項目ID從數據庫中的其他表中檢索該頁面中某一列中的數據。有人能幫我弄清楚如何做到這一點嗎?基本上我需要對另一個指定項目ID的表進行另一個查詢,但實際上並不知道如何使用CodeIgniter來完成此操作。CodeIgniter從數據庫中獲取數據

UPDATE

在我得到的項目清單與下面的函數模型:

function get_projects_list($page, $limit){ 
     $sql = sprintf("SELECT * FROM Project WHERE deleted != 1 LIMIT %d, %d", ($page-1)*$limit, $limit); 
     $query = $this->db->query($sql); 
     return $query->result(); 
    } 

和Controller我調用下面的函數:

$projects_list = $this->Project_management_model->get_projects_list($curPage, self::$LIMIT_PER_PAGE); 

     $data['projects_list'] = $projects_list; 
     $data['cur_page'] = $curPage; 
     $data['page_count'] = $pageCount; 

     $this->load->view('project_management_view', $data); 

而在視圖中,我只需使用foreach在$ data上運行,並將結果列在表中。在那張表中有一列,我需要根據該行項目的ID顯示另一個表的結果。

感謝您的幫助。

+0

你想知道codeigniter中的'subquery'嗎? –

回答

0

我實際上已經找到了一種方法來做到這一點與自定義助手。創建一個新的幫助器並將其加載到控制器中,可以選擇在視圖中使用該幫助器的功能。

謝謝。

+0

既然你接受了其他答案的答案,你至少可以非常具體,準確地展示你所做的事情嗎?這樣你的問題對別人更有幫助。謝謝。 – Sparky

0
public function get data() 
{ 
    $this->db->flush_cache(); 
    $query = $this->db->get('project_table'); 
    $result = $query->result(); 
    $data = array(); 
      for ($i = 0;$i < count($result);$i++) 
     { 
       $data[$i] = $result[$i]; 
       $data[$i]['project_data'] = temp($result[$i]->id); 
     } 
     return data; 
} 

private function temp($id = 0) 
{ 
$this->db->flush_cache(); 
$this->where('id',$id); 
$query = $this->db->get('project_table2'); 
$result = $query->result(); 
if (count($result) != 0) 
return $result[0]->data; 
} 

你可以通過這樣的事情做到這一點,或者你可以通過數據庫的查詢功能使用子查詢。

+0

我已更新我的問題。 – cycero

0

你沒有提到你是否使用ActiveRecord。我假設你是。我也會猜測,也許你需要做的是使用JOIN。

如果您使用直接的SQL,你會使用一些SQL可能看起來像這樣做:

SELECT a.appointment_time, u.user_real_name FROM appointment a, site_user u WHERE u.site_user_id = a.user_id; 

這會從用戶表基於預約的用戶ID拉動用戶名錶並將其與預約時間放在查詢結果中。

使用ActiveRecord,你會做這樣的事情:

$this->db->select('appointment_time,user_real_name')->from('appointment')->join('site_user', 'site_user_id=appointment_user_id'); 

但你爲什麼不告訴我們多一點關於你的問題。具體而言,您是否希望另一個表中的此列與第一個表中的行相關?如果是這樣,我的JOIN建議是你需要的。

+0

我已更新我的問題。 – cycero

+0

我根據你的更新找到我,JOIN可能確實是你需要的。不幸的是,我仍然因爲某種原因而感到不清楚你想要做什麼。你能否給我三個問題的名字? 1.你需要從另一個表中得到的列的名稱是什麼(以'table'.'column'格式),2.第一個表中具有該id的列的名稱是什麼(格式相同)和3.另一個表中的id列的名稱是什麼(與其他答案的格式相同)? –