Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 已关闭的Magento集合或条件_Php_Mysql_Magento_Magento 1.7 - Fatal编程技术网

Php 已关闭的Magento集合或条件

Php 已关闭的Magento集合或条件,php,mysql,magento,magento-1.7,Php,Mysql,Magento,Magento 1.7,我现在可以做了我用了这个代码 ->addAttributeToFilter('best_flag'); $collection->getSelect()->orwhere("at_best_flag. VALUE = '1'"); 谢谢大家的帮助 如何在代码中使用或条件 我的问题代码* ->addAttributeToFilter('best_flag', array('eq' => '1') ) 但是我测试getselectsql代码是否显示 AND(at

我现在可以做了我用了这个代码

->addAttributeToFilter('best_flag');

$collection->getSelect()->orwhere("at_best_flag. VALUE = '1'"); 
谢谢大家的帮助

如何在代码中使用或条件

我的问题代码*

->addAttributeToFilter('best_flag', array('eq' => '1') )
但是我测试getselectsql代码是否显示

AND(at_best_flag. VALUE = '1')
我想更改此代码,或者可以设置此代码的条件

询问此问题后更新我尝试使用此代码但不起作用

->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate)),
            array('attribute' =>'best_to_date', array('or'=> array(
                0 => array('date' => true, 'from' => $todayDate),
                1 => array('is' => new Zend_Db_Expr('null')))
                ), 'left')   
        ))
但结果和我想要的不匹配日期的结果不起作用,因为产品忽略了日期条件

$collection->addAttributeToFilter(
array(
    array('attribute'=> 'attribute1','like' => 'value1'),
    array('attribute'=> 'attribute2','like' => 'value2'),
    array('attribute'=> 'attribute3','like' => 'value3'),
 )
);
我想在同一个集合中选择具有“按日期”和“按标志”的产品

编辑产品列表

  • 所有产品均为23
  • 在从-最佳到=10的最佳范围内
  • 如果仅具有标志=7(只是不在-to范围内)
  • 如果最好从=23开始
  • 如果最好的结果是=10
  • 此集合的正确结果将为17
我将尝试更新代码

$collection->addAttributeToFilter(array(
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))),
            array('attribute' =>'best_to_date', array('or'=> array(
                0 => array('date' => true, 'from' => $todayDate),
                1 => array('is' => new Zend_Db_Expr('null')))
                ), 'left')   
        )
          ->addAttributeToFilter('best_flag', array('eq' => '1'));
结果=7

->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $todayDate),
            1 => array('is' => new Zend_Db_Expr('null')))
        ), 'left')
            ))
        ->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))
            ))
结果=23

->addAttributeToFilter('best_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $todayDate),
            1 => array('is' => new Zend_Db_Expr('null')))
        ), 'left')    
        ->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))
            ))
结果=10

->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $todayDate),
            1 => array('is' => new Zend_Db_Expr('null')))
        ), 'left')
            ))
        ->addAttributeToFilter('best_from_date', array('date' => true, 'to' => $todayDate))

结果=23

这应该与技巧有关:

->addAttributeToFilter('best_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $todayDate),
            1 => array('is' => new Zend_Db_Expr('null')))
        ), 'left')    
        ->addAttributeToFilter(array(
            array('attribute' =>'best_flag', array('eq' => '1')),
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))
            ))
->addAttributeToFilter('best_flag', array('in' => array(1,2,3,4)))

这应该是关键:

->addAttributeToFilter('best_flag', array('in' => array(1,2,3,4)))

您可以将此代码用于或条件

$collection->addAttributeToFilter(
array(
    array('attribute'=> 'attribute1','like' => 'value1'),
    array('attribute'=> 'attribute2','like' => 'value2'),
    array('attribute'=> 'attribute3','like' => 'value3'),
 )
);
这将输出格式为的WHERE子句:

WHERE ((attribute1 LIKE 'value1') OR (attribute2 LIKE 'value2') OR (attribute3 LIKE 'value3')) 

您可以将此代码用于或条件

$collection->addAttributeToFilter(
array(
    array('attribute'=> 'attribute1','like' => 'value1'),
    array('attribute'=> 'attribute2','like' => 'value2'),
    array('attribute'=> 'attribute3','like' => 'value3'),
 )
);
这将输出格式为的WHERE子句:

WHERE ((attribute1 LIKE 'value1') OR (attribute2 LIKE 'value2') OR (attribute3 LIKE 'value3')) 

关于您的更新,它不起作用,因为您将所有内容都切换到了或语句。试试这个:

$yourmodel->addAttributeToFilter(array(
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))),
            array('attribute' =>'best_to_date', array('or'=> array(
                0 => array('date' => true, 'from' => $todayDate),
                1 => array('is' => new Zend_Db_Expr('null')))
                ), 'left')   
        )
          ->addAttributeToFilter('best_flag', array('eq' => '1'));
这将呈现
(从日期开始的最佳时间或从日期开始的最佳时间)和最佳时间标志

正如我所说,如果您使用@Emipro Technologies answer,您将获得或,如果您链接
->addAttributeToFilter()
,您将获得并像开始时一样获得。如果您想同时使用这两种语法,只需混合使用这两种语法。

关于您的更新,它不起作用,因为您将所有内容都切换为OR语句。试试这个:

$yourmodel->addAttributeToFilter(array(
            array('attribute' =>'best_from_date', array('date' => true, 'to' => $todayDate))),
            array('attribute' =>'best_to_date', array('or'=> array(
                0 => array('date' => true, 'from' => $todayDate),
                1 => array('is' => new Zend_Db_Expr('null')))
                ), 'left')   
        )
          ->addAttributeToFilter('best_flag', array('eq' => '1'));
这将呈现
(从日期开始的最佳时间或从日期开始的最佳时间)和最佳时间标志


正如我所说,如果您使用@Emipro Technologies answer,您将获得或,如果您链接
->addAttributeToFilter()
,您将获得并像开始时一样获得。如果您想同时使用这两种语法,您只需混合使用这两种语法。

谢谢您的帮助,但这一技巧不起作用。sql中的结果是相同的”和(在(1,2,3,4)中的“新产品中的值是什么”和“?”->addAttributeToFilter('best_from_date',array('date'=>true',to'=>todayDate))->addAttributeToFilter('('best_to_date',array('or'=>array('date'=>true',from'=>$todayDate),1=>array('is'=>new Zend_Db_Expr('null')),'left')我试图编写代码,用date to-date from选择集合,或者我的集合中flaq from date是10 by flaq是7(现在不是同一个产品)如果此代码条件为且集合=0,如果我可以使用我的集合,则将有17个感谢您的帮助,但此技巧不起作用。sql中的结果是相同的”和(在(1,2,3,4)中的“新产品值”和“?”->addAttributeToFilter('best_from_date',array('date'=>true,'to'=>todayDate))->addAttributeToFilter('best_to_date',array('or'=>array(0=>array('date'=>true,'from'=>$todayDate),1=>array('is'=>new Zend_Db_Expr('null')),'left')我试图用代码选择date to-date from的集合,或者我的集合中flaq from date是10,flaq是7(现在不是同一个产品)如果此代码条件为且集合=0如果我可以使用我的集合将有17个感谢您的帮助我将尝试此代码,但它不起作用,因为我的2个第一个条件仅适用于AND@TenanoTalE
->addAttributeToFilter(在此处插入Emipro的答案)->addAttributeToFilter(在此处插入您自己的代码)
将对与Empire的答案相关的部分执行OR,并对您的部分执行and。@b.enoit.be我尝试匹配2个代码,但结果不正确。首先,我尝试设置best_to_date并将其标记为us,但结果显示所有项目均为date from,而不是date to如果我将best_from日期设置为date,则标志结果不显示不仅是date not expirethank谢谢你的帮助,我会尝试这个代码,但它不起作用,因为我的第一个条件是只与AND@TenanoTalE
->addAttributeToFilter(在此处插入Emipro的答案)->addAttributeToFilter(在此处插入您自己的代码)
将对与Empire的答案相关的部分执行OR,并对您的部分执行and。@b.enoit.be我尝试匹配2个代码,但结果不正确。首先,我尝试设置best_to_date并将其标记为us,但结果显示所有项目均为date from,而不是date to如果我将best_from日期设置为date,则标志结果不显示不仅是date not expireThank感谢您的帮助,很抱歉回答得太晚,我尝试使用这段代码,但结果是show 7是唯一来自flag的结果(date-from-date-result=10 by flag=7,我想显示17),我尝试混合使用(date-to+flag)和(date-from+flag),但结果是show所有项,我只尝试使用(date-to+flag)结果显示所有项目都是相同的。我真的不确定你想要/需要什么,但请简单一点。还要记住,如果在加载收藏之前,你做了
echo$your_model->getSelect()
,您可以打印相应的sql请求,然后使用请求的结果进行验证或直接执行到数据库中,可能会发现您确实存在逻辑问题而不是编程问题?感谢您的帮助,现在我可以使用“$your_model->getSelect()->或where(“sql”)获取我的收藏了'谢谢你的帮助,很抱歉回答得太晚,我尝试使用这段代码,但结果是show 7是唯一来自flag的结果(date-from-date-result=10 by flag=7,我想显示17),我尝试混合使用(date-to+flag)和(date-from+flag),但结果是show所有项,我只尝试使用(date-to+flag)结果显示所有项目都相同。我真的不确定你想要/需要什么,但请;mak