2013-07-25 40 views
0

我正在使用下面的代碼來遍歷Magento中可配置的所有簡單產品。該代碼顯示每個簡單產品的特定顏色數據。不要回顯,如果價值是重複的

但是,如果有兩種不同尺寸的簡單產品,但它們都具有相同顏色,它將兩次回顯關於該顏色的信息,我只需要它顯示一次即可。

<div class="colour-swatch"> 
    <h1>Other Colours Available</h1> 
    <?php 
    $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); 
    $col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); ?> 
    <div class="relative"> 
     <?php 
     foreach($col as $simple_product){ ?> 
      <div class="container-swatch"> 
       <img width="35" height="35" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getSwatch() ?>"> 
        <div class="content"> 
        <div class="inside-swatch-name"><?php echo $simple_product->getAttributeText('real_colour'); ?></div> 
        <img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getLargeSwatch() ?>"> 
        </div> 
      </div> 
     <?php } ?> 
     <?php if ($synb == 'Yes') { ?> 
     <div class="swatch-order"> 
      <a href="#" class="topopup2 order-samples-button">ORDER SAMPLES</a> 
     </div> 
     <?php } else { 
      //do nothing 
     } ?> 
    </div> 

</div> 
+0

請您提供一些更多的信息。什麼是數據,它是如何顯示的,以及您希望如何顯示它。也許可以編輯QUERY而不是代碼! – iSenne

回答

0
$colors = array(); 
foreach($col as $simple_product){ 
$color = $simple_product->getAttributeText('real_colour'); 
if(!in_array($color, $colors)){ 
$colors[] = $color; ?> 
//do the rest from your foreach 
0

更改此:

$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); ?> 

這樣:

$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions()->addGroupByAttribute('real_colour'); ?> 

,看看這是否正常工作。

+0

這使整個街區消失,沒有任何表現。 –

相關問題