2012-11-10 54 views
8

我特林使用get_where和ORDER_BY是這樣的...笨get_where ORDER_BY

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

,但得到這個錯誤...

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 

我到底做錯了什麼?

+0

你使用什麼版本的Code Igniter?該文檔說:'注意:order_by()以前被稱爲orderby(),它已被刪除。「# –

+0

最新oneee – user979331

+0

我想你可能需要' - > where()'而不是' - > get_where() 。至少,我會試一試。 – sberry

回答

30

在CodeIgniter的活動記錄中,除了返回結果集的getget_where之外,每個方法都返回對象本身(允許方法鏈接)。

因此,你需要做的是:

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

get_where()呼叫需要是最後一個。它返回結果集,所以在get_where()試圖在結果集無效時調用order_by()

編輯

還有其他的方法來寫這個查詢還有:

$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 =「SELECT * FROM table where col_name ='$ where'order by birth_date asc「;

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

我剛纔試過這個,它適用於我