基于codeigniter中的数组从数据库中获取值

时间:2012-12-15 10:49:24

标签: mysql arrays codeigniter select

我有一个数组

$user = array([0]=>1 [1]=>2 [2]=>3)

包含某些用户的ID。 我需要从数据库中获取这些用户的国家/地区。

foreach($userid as $user){
    $this->db->select('country');
    $this->db->where('user_id',$user);
    $this->db->from('company');
    $usercountry = $this->db->get();
    $count = $usercountry->row();
    $country = $count->country;
    }

假设user1有国家ES,user2有IN,user3有US,user4有UK。那么如果数组包含1,2,3。然后我需要得到ES,IN,US的国家。

2 个答案:

答案 0 :(得分:0)

这是这种数组的正常查询方式

public function get_countries($user)
{
 $query = "select country from company where user_id IN($user)";
 $result = $this->db->query($query);
 if($res->num_rows()>0){
        return $res->result("array");
    }
    return array();
}

答案 1 :(得分:0)

  1. 不需要使用多个查询循环 - 而是使用WHERE id IN (1,2,3);或CodeIgniter等效 - $this->db->where_in();
  2. 如果您的ID代表不同的国家/地区,则可以在数据库中创建一个表格,其中列出了与其ID相关联的国家/地区。然后,当您从users表格中获取数据时,您可以通过链接中的公共链使用country_id(这称为外键)创建表之间的关系。)。