6

私は効率について考えていますが、それについてはよくわかりません。

しかし、複数の列を持つ行がたくさんあります。特定の他のキーが特定の値であるすべての行の名前フィールドが必要です。これらすべての行を次のように取得できます。

$this->db->where('res_id', $res_id);
$q = $this->db->get('products');
return $q->result();

次に、返される配列を介して foreach を実行し、各オブジェクトの name メソッドのみを使用できます。

foreach($returned_value as $fun):
    echo $fun->name;
endforeach;

しかし、各行から name 属性のみを選択する方が効率的かどうか疑問に思っています。アクティブレコードをずっと使用してきたので、それを尋ねるのは愚かだと思いますが、どうすればよいでしょうか。関数を使用して書き出すことができることはわかってい$this->db->query()ますが、メインのアクティブ レコード コマンドを使用して指定する方法はありますか? ありがとう。

4

1 に答える 1

10
    $this->db->select('name'); 
    $this->db->from('tblNAME');   
    $this->db->where('res_id', $res_id);
    return $this->db->get()->result();

あなたがすべてを返すわけではないので、私はそれがより速くそしてより効率的だと思います。

未テスト

これが私が使っているテスト済みの関数です。

function get($id = null) 
        {
            $this->db->select('id, Username, First_Name, Last_Name, Role, Email');
            $this->db->from('user');
            if (!is_null($id)) $this->db->where('id', $id);
            $this->db->order_by('id', 'desc');
            return $this->db->get()->result();
        }
于 2012-08-08T22:39:27.160 に答える