2012-04-20 6 views
2

データベースクエリから配列を返す方法を探していますが、最初の行だけを探しています。CodeIgniter - データベース結果配列が1行だけです

//Gather 
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array(); 

//Collect the first row only 
$data = $data[0]; 

正直に言うと、かなり醜いです:私は..オブジェクトを使用しない

私の現在のソリューションを好むだろう。言ったように、私はオブジェクトを使用したくないです。

+0

なぜオブジェクトを使用したくないですか? – Mischa

+2

行メソッドを使用します。 http://codeigniter.com/user_guide/database/results.html – TigerTiger

+0

@Mischaのように興味がありますが、なぜあなたはオブジェクトから恥ずかしがりますか?特にMVCフレームワークで。 –

答えて

7

ではなくrow()メソッドを使用します。

$data = $this->db->from('view')->where('alias', $alias)->get()->row(); 

を[ああ、あなたがオブジェクトを使用する必要はありません。 row_array()となります。しかし、オブジェクトを考える]

2

あなたはこれを行うことができます。(あなたが望むような)

$data = $this->db->from('view')->where('alias', $alias)->get()->row_array(); 

これはminitechの答えと同じことは、それだけではなく、オブジェクトの配列を返します。

0

row_array()関数を使用すると、1行のデータを取得できます。その行をパラメータとして指定します。

たとえば、あなたの結果の最初の行を取得するには、次の操作を行います。

$this->db->from('view')->where('alias', $alias)->get()->result_array(0); 
0

あなたはあまりにもこのコードを使用することができます配列として最初の行のみを取得したい場合:

$data = $this->db->from('view')->where('alias', $alias)->get()->first_row('array'); 

しかし、実際には1つの結果しか得られない場合は、select( 'TOP 1 ....')を使用します。これは、このメソッドがクエリの戻り時間のパフォーマンスを向上させるためです。 get()を直接使うと、最初の行だけでなく、データ全体を返そうとします。そしてそれはあなたが望むものを表示します(最初の行)。しかし、TOP 1メソッドを使用する場合は、それは最高。

関連する問題