2010-04-20 4 views
10

Załóżmy, że tworzymy kwerendę activerecord, która zawsze zwróci pojedynczą wartość, w jaki sposób adresujemy tę pojedynczą wartość, zamiast zwracać tablicę? Na przykład używam kwerendy ActiveRecord do zwracania SUM pojedynczej kolumny, zwróci ona tylko ten pojedynczy SUM, zamiast analizować tablicę jest sposób, aby zamiast tego przypisać wartość jako funkcję zwracającą równą tej wartości uzyskania tablicy?ActiveRecord + CodeIgniter - Zwraca pojedynczą wartość z zapytania, a nie w postaci tablicy

Odpowiedz

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

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

Oooh yeah! To rzeczy. Przetestowane i działa świetnie. – txmail

+1

To jest właściwa odpowiedź dla rekordu aktywnego, ale ogólnie, jeśli chcesz zapisać pierwszy wynik dowolnej tablicy w var, możesz użyć czegoś takiego: $ var = whatever(); $ zmienna = $ zmienna [0]; , a następnie od tego momentu nie trzeba zadzierać z indeksami. – njbair

1

to nie jest najładniejsza metoda. Nie mogę znaleźć sposobu, aby to zrobić z aktywnym interfejsem zapisu. ale tutaj jest jeden liniowiec, aby go zdobyć.

$result = array(

    array('sum' => '23') 

); 

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

Czy nie ustawić wartości w tablicy? – txmail

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

LUB

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

Gdzie fieldname to nazwa pola, które chcesz wyjście w zapytaniu.