2012-08-25 87 views
0

我遇到了一個問題,我不知道如何解決它。
我有一個表,orders
我們的客戶希望只不是「批准」顯示訂單。
首先,我認爲這是很容易,使用find('order_status!='=>'approved') ...
它顯示數據庫錯誤CAKEPHP MYSQL ORDER ISSUE

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order IN ('12', NULL, '', NULL, '08/22/2012', 'Yes', 'No', NULL, ' \r\n test da' at line 1

失敗了很多次後(刪除了所有相關的表格,檢查語法,寫在phpadmin SQL)

我認爲問題是Order是一個保留字,而Cakephp會自動設置外部順序。

所以我用查詢$這個 - >命令中─>查詢( 「SELECT * FROM其中ORDER_STATUS = '批准' 的訂單;」); 我得到另一個錯誤:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'orders' in 'where clause'

事實上,CakePHP的還是做同樣的事情, 「... FROM orders AS Order...

從網址:/訂單ORDER_STATUS =批准,它的工作原理,但我不知道如何表達「!=批准」

如何解決呢?我不想重命名錶格。

回答

0

它應該是這樣的:

$this->Order->find('all', array(
    'conditions'=>array(
    'NOT'=>array('Orders.order_status'=>'approved') 
    ) 
)); 

而且你應該使用整數1或0這種類型的東西,而不是字符串,更容易IFS使用。對於未批准的已批准0(默認),爲1。

+0

我用你的方法,但仍然有錯誤。我會更改爲1,等待2,再試一次,謝謝。 – user1606032

+0

$結果= $這個 - >命令中─>找到( '所有',陣列( '條件'=>數組( 'NOT'=>數組( 'Order.id'=> 19) )));仍然無法正常工作,我認爲問題是'訂單'錯誤:語法錯誤或訪問衝突:1064您的SQL語法錯誤; – user1606032

+0

我問我的老師,如果有任何解決方案,我會發布它。另外我需要幫助....我希望今天能夠解決..... – user1606032

0

這是來自我的老師,它的工作原理。

$this->set('orders', $this->paginate('Order', array("Order.order_status !=" => 'Approved'))); 

,我仍然不知道爲什麼它不工作,當第一次拿到使用數組查找(全部條件),然後將其指定分頁...