我很难搞清楚这一点。我试图获得一份随机产品清单:
$category = Mage::getModel('catalog/category')->load($catId);
$products = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('status',1)
->addCategoryFilter($category)
->addAttributeToFilter('visibility',array('in' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH))
->setPageSize(20)
->setCurPage($page);
$products->getSelect()->order(new Zend_Db_Expr('RAND()'));
这段代码工作正常,但我需要的是记住订单,这样可以浏览带有ajax调用的页面。
有没有办法让这个随机性由某种数字控制,如果给定的数字总是返回相同的行顺序?
答案 0 :(得分:0)
我可以考虑两种可能满足您需求的解决方案。
第一种是通过CRC32订购一个独特的产品字段(例如产品ID)。可能值得在表中添加一个新列以使其更快,而不是每次选择时为每行的字段CRC32编制。
第二个建议是添加一个新列,在该列中为表中的每一行放置一个随机生成的数字。