SQL请求无法正常工作

时间:2012-07-25 15:02:59

标签: mysql cakephp request

我的问题非常简单。我有一个名为'articles'的表,我想得到前三篇文章命令DESC。但是如果他们的出版日期比现在更早或等于今天,我也希望显示这些文章。所以我的请求中还有另一个条件。我的cakephp代码如下:

$this->set('lastArticles', $this->Article->find('all', array(
            'conditions' => array('Article.visible' => true),
            'Article.publication_date <= ' => date('Y-m-d'),
            'order' => array('Article.creation_date DESC', 'Article.id DESC'),
            'limit' => 3
        )));

但问题是即使发布日期&gt;的文章也是如此。日期('Y-m-d')这些也显示出来!有没有人有想法?提前感谢您的回答。

2 个答案:

答案 0 :(得分:1)

看起来你的publication_date条件不在conditions数组中。您的代码应如下所示:

$this->set('lastArticles', $this->Article->find('all', 
     array(
        'conditions' => array(
            'Article.visible' => true, 
            'Article.publication_date <= ' => date('Y-m-d')
        ),
        'order' => array(
            'Article.creation_date DESC', 
            'Article.id DESC'
        ),
        'limit' => 3
    )));

这里有一些额外的缩进和空白是你的朋友。

答案 1 :(得分:0)

See this

$conditions = array(
                'Article.visible' => true,
                'Article.publication_date <= ' => date('Y-m-d')
            );

$order = array('Article.creation_date DESC', 'Article.id DESC');

$lastArticles = $this->Article->find('all', array(
            'conditions' => $conditions,
            'order' => $order,
            'limit' => 3
        );

$this->set('lastArticles', $lastArticles);