2012-08-25 53 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'))); 

,我仍然不知道为什么它不工作,当第一次拿到使用数组查找(全部条件),然后将其指定分页...