2011-07-05 5 views
2

각 레코드에 대해 데이터베이스에서 모든 날짜를 가져 오는 기능이 있습니다. 나는 같은 일이 반복되지 있어야합니다 원하는 반면,반복없이 데이터베이스와 디스플레이에서 날짜를 얻는 방법?

<?php 

     $coll = $this->getAllYears(); 

    ?> 


     <?php foreach ($coll as $list): ?> 

       <?php echo $list["year"]; ?> 
     <?php endforeach; ?> 

그것은 모든 년 (날짜) 저를주고, 반복을 돌보는없는 :

public function getAllYears() { 

    $collection = Mage::getModel('press/press')->getCollection()->getYears(); 

    return $collection; 

} 

과 같이 표시하고 있습니다.

같은 해에 반복해서는 안됩니다. 도움이 되었습니까?

+0

당신은 쿼리에 절을 GROUPBY 추가 할 수 없습니다? –

+1

참조 : http://stackoverflow.com/questions/4511314/filter-magento-collection-but-not-products-using-distinct Magento에 대해 많이 알지는 못하지만 찾고있는 내용은 Magento에 대한 필요성을 암시합니다. DISTINCT를 사용하여 쿼리 –

+2

검색어와 함께 시도하십시오. -> setOrder ('year', 'ASC') -> 그룹 ('year'); –

답변

2

아마도에 표시 코드를 변경 :

<?php 
$years = array(); 
$coll = $this->getAllYears(); 
foreach ($coll as $list) 
    $years[] = $list['year']; 
$years = array_unique($years); 
?> 

<?php foreach ($years as $year): ?> 
<?php echo $year; ?> 
<?php endforeach; ?> 
+0

대단히 감사합니다 :) 나를 위해 시간을 많이 구해 줬습니다. :) – kharmato

0

방법에 대해 :

<?php 
$coll = $this->getAllYears(); 

$lastyear 
foreach ($coll as $list) 
{ 
    if($list["year"] != $lastyear) { 
    echo $list["year"]; 
} 
$lastyear = $list["year"] 
} 
?> 
+3

그건 반환 된 연도가 반드시 그럴 필요는 없다고 가정합니다. –

관련 문제