2010-11-06 3 views
1

J'essaie d'obtenir cette requête dans magento.attribut sélectionnez requête magento

Sélectionnez Merk, option_id du catalogue ....... groupe par option_id

Sofar j'ai cela, mais il aint montrant la valeur option_id malheureusement et aussi je ne sais pas comment le groupe en les ...

J'espère que quelqu'un est prêt à me aider [code]

<?php 
function getMenuWatches(){ 
    $collection = Mage::getModel("catalog/product")->getCollection(); 
    $collection->addAttributeToFilter("attribute_set_id", 26); 
    $collection->addAttributeToSelect("option_id , merk"); 


    return $collection; 
} 
$collection=getMenuWatches(); 
//print_r($collection); 
foreach ($collection as $product){ 
    echo $product->getOptionId(); 
    $product->getMerk(); 
    echo $product->getId('merk'); 
    echo $product->getAttributeText('merk')."<br/>"; 

} 
?> 
[/code] 

Répondre

1
$collection->addAttributeToSelect(array('option_id', 'merk')); 
$collection->groupByAttribute('option_id'); 
+0

txs mais de toute façon il ne me donne pas l'option_id. Merk est un attribut avec plusieurs choix. chaque choix a un non. l'option_id peut-être que je dois faire quelques trucs pour obtenir cette valeur. –

1

attributs à choix multiples sont stockés sous forme de valeurs séparées par des virgules. donc il vous suffit d'ajouter l'attribut « Merk » dans l'objet de sélection:

$collection->addAttributeToSelect('merk'); 

et quand vous itérez la collection, vous pouvez récupérer les options id en appelant votre valeur d'attribut:

// List of option_id values 
$values = explode(',', $product->getMerk()); 

Après la récupération de les valeurs que vous avez besoin de récupérer l'étiquette d'option pour chaque id option

$attribute = $product->getResource()->getAttribute('merk'); 
$optionLabel = $attribute->getSource()->getOptionText($optionId); 

pour filtrer par l'un des multiples valeurs que vous pouvez utiliser:

// Creates FIND_IN_SET statement for comma-separated attribute values 
$collection->addAttributeToFilter('merk', array('finset' => $optionId)); 
Questions connexes