在find中有条件的cakephp

在find中有条件的cakephp,cakephp,find,having,Cakephp,Find,Having,有人能帮助我,并告诉我如何在cakephp中插入BEETWEN子句吗 我的代码示例: $zaduzenja = $this->Zaduzenja->find('all',array( 'conditions' => array( 'Zaduzenja.placeno' => 0 ), 'fields' => array('Zaduzenja.obvezni

有人能帮助我,并告诉我如何在cakephp中插入BEETWEN子句吗

我的代码示例:

$zaduzenja = $this->Zaduzenja->find('all',array(
                'conditions' => array(
                        'Zaduzenja.placeno' => 0 ),
                'fields' => array('Zaduzenja.obveznici_id', 'SUM(Zaduzenja.zaduzenje) as dug'),
                'group' => 'Zaduzenja.obveznici_id HAVING array(dug BETWEEN ? AND ? => array('.$iznosOd,$iznosDo)'

        ));

但这不起作用,我只希望计算列“dug”检查dug>=$temp 1和dugHi是否更改您的查询,如下所示:

$zaduzenja = $this->Zaduzenja->find('all',array(
                    'conditions' => array(
                            'Zaduzenja.placeno' => 0
                             ),
                    'fields' => array(
                            'Zaduzenja.obveznici_id',
                            'SUM(Zaduzenja.zaduzenje) as dug'
                            ),
                    'group' => 'Zaduzenja.obveznici_id having dug Between '.$temp_1.' and '.$temp2

            ));
Iinjoy

为什么不干脆这样

$db = $this->Zaduzenja->getDataSource();

$iznosOd = $db->value($iznosOd, 'double');  // quotes and escapes input to avoid SQL injections
$iznosDo = $db->value($iznosDo, 'double');  // ditto

$zaduzenja = $this->Zaduzenja->find(
    'all',
    array(
        'conditions' => array(
            'Zaduzenja.placeno' => 0 
        ),
        'fields' => array(
            'Zaduzenja.obveznici_id', 
            'SUM(Zaduzenja.zaduzenje) as dug'
        ),
        'group' => "Zaduzenja.obveznici_id HAVING dug BETWEEN $iznosOd AND $iznosDo"
    )
);

我改变了,但我得到了这个错误:一般错误:1滥用聚合:SUM()我想我必须在“group”中使用与arilias答案中相同的内容…@ndm你不能在上面的查询中进行SQL注入,因为每次你在$tem_1或$temp_2中放入某些内容,它将在group语句下出现…这就是CakePHP数据库包装器的美妙之处…无论如何,感谢您的启发…如果操作正确,它是美丽的,但这是错误的方式,当然您可以在其中插入SQL,只需尝试一下。我如何能像iznosOd iznosDo这样再添加一个参数日期,DateOd DateDo??如何添加一个以上的参数日期,如iznosOd iznosDo,DateOd DateDo??您想在哪里添加这些参数?处于何处状态或有状态。请更好地解释,我必须检查日期,我只需要SUM(Dug),其中日期在正确的范围内,实际上我必须在where条件中添加参数?…我们每天的SQL注入漏洞剂量。请正确。
SUM(Zaduzenja.zaduzenje)为dug
=>这应该是一个虚拟字段!看见