2011-12-03 219 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列的名称是什么(与其他答案的格式相同)? –