【问题标题】:get value from database based on array in codeigniter基于codeigniter中的数组从数据库中获取值
【发布时间】:2012-12-03 05:06:15
【问题描述】:

我有一个数组

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

【问题讨论】:

  • 如果我的回答对你有用的话,你能点个赞吗…………

标签: mysql arrays codeigniter select


【解决方案1】:

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

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();
}

【讨论】:

    【解决方案2】:
    1. 不需要带有多个查询的循环 - 而是使用 WHERE id IN (1,2,3); 或 CodeIgniter 等效项 - $this->db->where_in();
    2. 如果您有代表不同国家/地区的 ID,您可以在数据库中创建一个表,其中包含国家/地区列表及其 ID。然后,当您从 users 表中获取数据时,您始终可以通过使用链接中的公共链 - country_id(这称为 FOREIGN KEY 并在表之间创建关系)从该表中获取 JOIN 国家/地区。

    【讨论】:

      猜你喜欢
      • 2013-05-06
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多