2010-04-20 7 views
10

Supponiamo che si costruisca una query di activerecord che restituirà sempre un singolo valore, come si fa a risolvere quel singolo valore invece di ottenere un array in cambio? Per esempio sto usando una query ActiveRecord per restituire la SUM di una singola colonna, restituirà solo questa singola SUM, invece di dover analizzare la matrice c'è un modo per assegnare il valore come una funzione restituita uguale a quel valore di ottenere un array?ActiveRecord + CodeIgniter - Restituisce un singolo valore dalla query, non in forma di matrice

risposta

31
$query = $this->db->get(); // your ActiveRecord query that will return a col called 'sum' 

echo $query->row('sum'); 
+0

Oooh si! Che roba. Testato e funzionante alla grande. – txmail

+1

Questa è la risposta giusta per Active Record, ma in generale se si desidera memorizzare il primo risultato di qualsiasi array in una var è possibile utilizzare qualcosa come: $ var = whatever(); $ var = $ var [0]; e da quel momento in poi non devi fare casino con gli indici. – njbair

1

questo non è il modo più carino. non riesco a trovare un modo per farlo con l'API del record attivo. ma ecco un one-liner per averlo.

$result = array(

    array('sum' => '23') 

); 

echo current(current($result)); 
+0

Non impostare un valore in un array? – txmail

8
$output = $this->db->query("YOUR QUERY")->row()->fieldname; 

O

$output = $this->db->get("TABLE NAME")->row()->fieldname; 

Dove fieldname è il nome del campo che si desidera che l'uscita del nella query.

Problemi correlati