php - Magento 集合分组和按值范围限制

标签 php mysql zend-framework magento

我确信这可以通过一些聪明的 mysql 表达式或 zend 连接来解决,但我在这里没有足够的知识来解决,希望 SO 社区中的人可以。

假设我在 Magento 中有一个产品集合,它们是按类别位置排序的。

我只想从集合中检索 2 个产品,即类别位置最高的产品。

应说明如下:

Category:
    Product A (position 3);
    Product B (position 1);
    Product C (position 0);
    Product D (position 2);

在这个集合中,我只想检索产品 C 和 B,因为这是两个最高位置。

另一个例子:

Category:
    Product A (position 1);
    Product B (position 3);
    Product C (position 0);
    Product D (position 2);

在这个集合中,我只想检索产品 C 和 A。

如何在单个收集负载中完成此操作。例如,我不想加载集合然后迭代并手动排序等。

最佳答案

$_category = Mage::getModel('catalog/category')->load($categoryId);
$coll = $_category->getProductCollection()->addAttributeToSort('position','ASC');
$coll->getSelect()->limit(2);
$coll->load();

之后您可以遍历您的集合:

foreach ($coll as $product) {
   // Do sth. with $product
}

关于php - Magento 集合分组和按值范围限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14231708/

相关文章:

php - 创建一个 PHP 随机段落生成器

php - 如何在jwplayer中停止视频onclick功能

php - 根据 14 天工资期计算工资期 - PHP/SQL

python - 从 MySQL 获取表到 Pandas 的最快方法

php - 仍然使用 PDO 参数化查询攻击 SQL 注入(inject)

php - $_GET javascript 到 php 的变量

php - 如何自动从数据库获取当前日期的数据

php - 从 zend 框架应用程序的 indexController 中删除索引

php - Zend_Form 和 Zend_Filter

zend-framework - 单元测试 (PHPUnit) : how to login?