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 と結合された国のリストを持つテーブルを DB に作成できます。次に、テーブルからデータをフェッチするときに、リンクの共通チェーンを使用して、そのテーブルから国をいつでも結合usersできます - (これは FOREIGN KEY と呼ばれ、テーブル間の関係を作成します)。country_id
于 2012-12-15T11:00:33.487 に答える