2012-11-10 11 views
8

私は私が間違ってCodeIgniterのget_where ORDER_BY

Fatal error: Call to undefined method CI_DB_mysql_result::order_by() in C:\xampp\htdocs\OAWA\application\models\Member_model.php on line 82 

何をやっている...そう...

$query = $this->db->get_where($this->tbl_name, $where)->order_by('birth_date', 'ASC'); 

ようget_whereとORDER_BYを使用するトリングが、このエラーを得たのですか?

+0

どのバージョンのCode Igniterをお使いですか? 'order_by()は以前はorderby()だったので、削除されました。 ' –

+0

最新のもの – user979331

+0

' - > get_where() 'ではなく - 。少なくとも、私はそれを試してみましょう。 – sberry

答えて

30

CodeIgniterのアクティブレコードでは、すべてのメソッドが結果セットを返すgetget_whereを除き、オブジェクト自体(メソッドチェインを可能にする)を返します。

したがって、あなたが何をする必要があるかは、次のとおりです。

$query = $this->db->order_by('birth_date', 'ASC')->get_where($this->tbl_name, $where); 

すなわちget_where()呼び出しが最後の1にする必要があります。結果セットを返すので、get_where()の後にorder_by()を呼び出すと、無効な結果セットで呼び出されようとしています。

EDIT

だけでなく、このクエリを記述する他の方法があります。

$query = $this->db->from($this->tbl_name)->where($where)->order_by('birth_date', 'ASC')->get(); 
0

これは私のために働いた

$query = $this->db->order_by('columnName', 'ASC')->get_where('tableName'); 
return $query->result(); 
+0

これは既に与えられた答えとどのように違うのですか? – Bowdzone

0
$this->db->order_by('birth_date', 'ASC'); 
$query = $this->db->get_where($field1, $field2); 
+1

あなたの答えを説明する必要があります。そうでなければ、それが何であるかを理解することは難しいです。変数名 '$ field1'、' $ filed2'を混乱させる –

0

$するmysql_query =「から*を選択テーブルwhere col_name = '$ order by birth_date asc ";

$ query = $ this-> db-> query($ mysql_query);

私はこれを今試してみましたが、それは私のために働いています