Magento - 带过滤器的集合显示不正确的结果

时间:2013-12-10 23:40:20

标签: php magento

出于报告原因,我试图在Magento之外获取SKU计数。 SKU总数的第一个字符串显示正确的计数(超过600,000)。有价格的SKU总数的第二个字符串仅显示2000,而当我将其设置为'null'而不是无效时,只有另外2000个左右。

require_once 'app/Mage.php';
Mage::app('default'); // Default or your store view name.

// Total Number of SKUs
$products = Mage::getModel('catalog/product')->getCollection()->getsize();
var_dump($products);

// Total Number of SKUs with Price
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('sku')->addAttributeToFilter('price', 'notnull')->getsize();
var_dump($products);

最初我认为它可能是索引所以我处理索引并且它仍然显示不正确的计数。我只是想知道我使用Magento 1.7时我的语法是否错误...

谢谢!

1 个答案:

答案 0 :(得分:0)

工作正常:(只是固定条件); - )

// Total Number of SKUs with Price
$products = Mage::getModel('catalog/product')->getCollection()
        ->addAttributeToSelect('sku')
        //->addMinimalPrice()
        //->addFinalPrice()
        //->addTaxPercents()
        ->addAttributeToFilter('price', array('notnull'=>true))
        ->getSize()
;

var_dump($products);

可能会有帮助:

  

array(“eq”=>'ZH12b5') - WHERE(sku ='ZH12b5')

     

array(“neq”=>'ZH12b5') - WHERE(sku<>'ZH12b5')

     

array(“like”=>'ZH12b5') - WHERE(sku LIKE'ZH12b5')

     

array(“nlike”=>'ZH') - 在哪里(sku不喜欢'ZH')

     

array(“is”=>'zh') - WHERE(sku IS'zh')

     

array(“in”=> array('zh','pl')) - WHERE(sku IN('zh','pl'))

     

array(“nin”=> array('zh','pl')) - WHERE(sku NOT IN('zh','pl'))

     

array(“notnull”=> true) - WHERE(sku IS NOT NULL)

     

array(“null”=> true) - WHERE(sku IS NULL)

     

array(“gt”=> 5) - HERE(sku> 5)

     

array(“lt”=> 10) - WHERE(sku< 10)

     

array(“gteq”=> 10) - WHERE(sku> = 5)

     

array(“lteq”=> 22) - WHERE(sku =< 5)

     

array(“finset”=> array('test')) - WHERE(find_in_set('test',sku))

     

array('from'=> 2,'to'=> 30) - WHERE(sku> ='2'和sku< = '30')