2012-08-08 10 views
5

Sto pensando all'efficienza e non ne sono davvero sicuro in un modo o nell'altro.Seleziona solo una colonna da più righe in codeigniter. Come è ed è più efficiente?

Ma ho un mucchio di righe con più colonne. Ho solo bisogno del campo del nome da tutte le righe in cui una certa altra chiave è un determinato valore. Posso ottenere tutte queste righe come questo:

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

allora posso foreach attraverso l'array che ritorna e utilizzare solo il metodo nome di ogni oggetto liek questo:

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

Ma mi chiedo, sarebbe più efficiente selezionare solo l'attributo name da ogni riga, e mi sento stupido a chiedermelo perché ho usato il record attivo per sempre, ma come potrei farlo. Mi rendo conto che potrei scriverlo usando la funzione $this->db->query(), ma c'è un modo per specificarlo usando i comandi di registrazione attivi principali? Grazie.

risposta

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

È più veloce e più efficiente, suppongo, poiché non si restituisce tutto.

il fitness

Ecco una funzione testato io uso che si potrebbe trovare una buona 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. lol, completamente dimenticato di selezionare(). sì, funzionerà. – Rooster

Problemi correlati