0

アクティブなレコードを含むデータベースからデータを取得しようとしていますが、次の問題が発生しています。このコードの後に​​たくさんの結合やその他のものがあるので、アクティブなレコードでそれを行う方法を学びたいです。それ以外の場合は、通常のクエリを記述します。

        $this->db->where("sa.country", $country);


         // I NEED TO OPEN BRACKETS HERE SO THAT I CAN GET THE LANGUAGES IF THERE IS DATA IN ONE OF THE ARRAYS


        if (isset($lid[0]))$this->db->where("sa.lang", $lid[0]);
        if (isset($lid[1]))$this->db->or_where("sa.lang", $lid[1]);
        if (isset($lid[2]))$this->db->or_where("sa.lang", $lid[2]);
        if (isset($lid[3]))$this->db->or_where("sa.lang", $lid[3]);
        if (isset($lid[4]))$this->db->or_where("sa.lang", $lid[4]);


        //AND CLOSE THEM HERE

私の目標は、配列内に対応する言語を使用して、dbから特定の国を取得することです。

4

3 に答える 3

0

これは役に立ちますか?

$this->db->where("sa.country", $country);

// loop through *set* languages
foreach($lid as $item)
{
    $this->db->where('sa.lang', $item);
}

// will return a query object
return $this->db->get('my_table');
于 2012-10-12T01:01:21.477 に答える
0

これが私が解決策に興味のある人のために問題を解決した方法です。

$this->db->where("(`sa`.`lang` = '$lid[0]' OR `sa`.`lang` = '$lid[1]' OR `sa`.`lang` = '$lid[2]' OR `sa`.`lang` = '$lid[3]' OR `sa`.`lang` = '$lid[4]')");
于 2012-10-12T04:21:28.433 に答える
0

使うべきだと思いますWHERE...IN...'wherein'に関するヘルプを参照してください。

ActiveRecordの場合:

$this->db->where_in("sa.lang",$lid);
于 2012-10-12T06:15:54.100 に答える