2010-04-20 4 views
10

Angenommen, Sie erstellen eine ActiveRecord-Abfrage, die immer nur einen einzelnen Wert zurückgibt. Wie adressieren Sie diesen einzelnen Wert, anstatt ein Array zu erhalten? Zum Beispiel verwende ich eine ActiveRecord-Abfrage, um die SUMME einer einzelnen Spalte zurückzugeben, sie wird nur diese eine einzige SUMME zurückgeben, anstatt das Array analysieren zu müssen, gibt es eine Möglichkeit, den Wert als eine Funktion zurückzugeben, die gleich diesem Wert ist ein Array zu bekommen?ActiveRecord + CodeIgniter - Rückgabe einzelner Werte aus Abfragen, nicht in Array-Form

Antwort

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

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

Ooah ja! Das Zeug. Getestet und funktioniert super. – txmail

+1

Dies ist die richtige Antwort für Active Record, aber im Allgemeinen, wenn Sie das erste Ergebnis eines Arrays in einer Var speichern möchten, könnten Sie etwas wie verwenden: $ var = washly(); $ var = $ var [0]; und von da an müssen Sie sich nicht mehr mit Indizes herumschlagen. – njbair

1

Dies ist nicht der schönste Weg. Ich kann keinen Weg finden, es mit der aktiven Rekord-API zu tun. Aber hier ist ein One-Liner, um es zu bekommen.

$result = array(

    array('sum' => '23') 

); 

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

Würde das nicht einen Wert in einem Array setzen? – txmail

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

ODER

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

Wo fieldname der Name des Feldes ist, die Ausgabe in Ihrer Anfrage möchten.

Verwandte Themen