2012-08-08 5 views
5

Ich denke an Effizienz, und ich bin mir nicht so sicher darüber.Wählen Sie nur eine Spalte aus mehreren Zeilen im Code-Signierer. Wie und ist das effizienter?

Aber ich habe eine Reihe von Zeilen mit mehreren Spalten. Ich benötige nur das Namensfeld von allen Reihen, in denen ein bestimmter anderer Schlüssel ein bestimmter Wert ist. Ich kann alle diese Zeilen wie diese:

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

dann kann ich das Array foreach durch, dass er zurückgeht und Name Methode für jedes Objekt liek diese nur verwenden:

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

Aber ich frage mich, Wäre es effizienter, nur das Namensattribut aus jeder Reihe auszuwählen, und ich fühle mich dumm, es zu fragen, weil ich den aktiven Rekord für immer benutzt habe, aber wie würde ich das tun? Ich weiß, dass ich es mit der $this->db->query()-Funktion schreiben könnte, aber gibt es eine Möglichkeit, es mit den wichtigsten aktiven Datensatzbefehlen anzugeben? Vielen Dank.

Antwort

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

Es ist schneller und effizienter nehme ich an, da Sie nicht alles zurückgeben.

UNTESTED

Hier ist eine getestete Funktion, die ich verwende, die Sie gut 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

wow finden könnten. lol, total vergessen zu wählen(). Ja, das wird funktionieren. – Rooster

Verwandte Themen