質問

私はこのクエリを持っています:

SELECT * FROM 'catalog_category_product' WHERE 'product_id' IN ('.$IDs.')

どこ $IDs 私は次のように取得します: $IDs = implode(',', $products);$products 製品IDの配列です。

今、私は同じことをしたいのですが、モデルコレクションを使用して。私はこれらの例をこれまでに持っています:

$collection = Mage::getModel('catalog/product')->getCollection();
        $collection->addAttributeToSelect('product_id');
        $collection->addAttributeToSelect('category_id');
        $collection->addAttributeToSelect('position');
        $collection->addFieldToFilter(array('attribute'=>'product_id','in'=>array($products)));

$collection = Mage::getModel('catalog/product')->getCollection();
        $collection->addAttributeToSelect('product_id');
        $collection->addAttributeToSelect('category_id');
        $collection->addAttributeToSelect('position');
        $collection->addFieldToFilter(array(
                array('attribute'=>'product_id','in'=>array($products)),
        ));

ただし、どちらの場合も、最後の関数呼び出しで例外があります。

PS私はこれらの3つの属性を一度に取得する必要があります(SQLクエリが行うように)が、各値を繰り返すことはありません $products 何千もの製品を扱っているからです。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top