1

我有一个数组

$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。

4

2 回答 2

2

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

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();
}
于 2012-12-15T10:59:57.433 回答
0
  1. 不需要带有多个查询的循环 - 而是使用WHERE id IN (1,2,3);或 CodeIgniter 等效项 -$this->db->where_in();
  2. 如果您有代表不同国家/地区的 ID,您可以在数据库中创建一个表,其中包含国家列表及其 ID。然后,当您从users表中获取数据时,您始终可以 使用链接中的公共链从该表中加入country_id国家/地区 - (这称为 FOREIGN KEY,它会在表之间创建关系)。
于 2012-12-15T11:00:33.487 回答