2012-08-08 3 views
5

私は効率について考えていますが、それについてはわかりません。codeigniterの複数の行から1つの列のみを選択します。どのようにこれはより効率的ですか?

しかし、私は複数の列を持つ行の束を持っています。私はちょうど他の特定のキーが特定の値であるすべての行から名前フィールドが必要です。

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

その後、私はそれが返されることを、配列をforeachのとこれだけliek各オブジェクトの名前のメソッドを使用することができます:私はこのようなすべてのこれらの行を取得することができます

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

しかし、私は思ったんだけど、各行からname属性だけを選択するほうが効率的でしょうか?そして、私はアクティブレコードを永遠に使用しているために愚かなことを聞​​いていますが、どうすればこのことを知ることができますか?私は$this->db->query()関数を使って書き出すことができると思いますが、メインのアクティブなレコードコマンドを使って指定する方法はありますか?ありがとう。

答えて

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

すべてが返っていないので、私はより速く効率的です。ここで

テストされていない

は、あなたが良いreeference見つけるかもしれない私が使用してテストした機能です

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

すごいです。 lolは、select()を完全に忘れてしまった。ええ、それは動作します。 – Rooster

関連する問題