Codeigniter:从两个数据库表中的helper传递数据

时间:2012-04-03 17:09:10

标签: php codeigniter

所以基本上我有一个帮手 -

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 []数组中。这是可行的吗?如果是,请告诉我它的例子。

2 个答案:

答案 0 :(得分: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独立函数。

答案 1 :(得分:0)

首先;始终建议您使用模型进行数据库操作。要从模型中检索数据库信息,还建议您使用库。帮助程序可用于您不总是需要数据库的目的,如日期计算,搜索功能等。

其次;如果我理解你是对的,你正在将表中的记录转换为数组,然后你想检查用户是否在该数组中有记录(或类似的东西),用户详细信息来自另一个数据库?如果是,那么只需将所有记录放入数组中,将用户详细信息(例如用户ID)转换为另一个数组或变量。剩下的部分都是阵列操作。