2014-07-25 3 views
0

내 웹 사이트에는 고객이 무제한의 뉴스를 추가 할 수있는 "뉴스"페이지가 있습니다 (날짜는 DB에 저장됩니다 (CURRENT_TIMESTAMP)).PHP : 블로그 같은 아카이브 시스템

예를 들어 사용자가 7 월을 클릭하면 7 월의 뉴스 만 페이지에 표시됩니다.

<?php 
    $q = $db->query("SELECT dateNews FROM news GROUP BY dateNews"); 

    while($data = $q->fetch()){ 
     $dateMonth= $data['dateNews']; 
     echo "<a href='#''><p>".strftime('%B %Y', strtotime($dateMonth))."</span></p></a>"; 
    }     
?> 

=>

하지만 난이 원하는 :

지금, 나는 단지이이

https://imagizer.imageshack.us/v2/848x381q90/905/wDH7bi.png

내 날짜가 제대로 표시됩니다,하지만 난 정말 몰라 문제를 해결하는 방법.

누군가 나를 도와 줄 수 있습니까?

편집 : 많은 연구 후에, 나는이 병합을위한 솔루션 같은 달 발견

:

<?php     
    $q = $db->query("SELECT YEAR(dateNews) AS YEAR, MONTH(dateNews) AS MONTH, COUNT(*) AS newsCount FROM news GROUP BY YEAR, MONTH"); 

    while($data = $q->fetch()){ 
     $dateMonth = $data['MONTH']; 
     echo "<a href='#''><p>".utf8_encode(strftime('%B %Y', strtotime($dateMonth)))." (" . $data['newsCount'] . ")</span></p></a>"; 
    } 
?> 

개월 올바르게 병합,하지만 지금은 내가 또 다른 문제를 해결할 수없는 것을 :

https://imagizer.imageshack.us/v2/813x334q90/540/cks3fp.png

내가 정말로 나 어떻게 해야할지 모르겠어요. 누군가가 뭔가 알고 있니?

답변

0

dateNews이 달인 것으로 가정하면 거의 다 알 수 있습니다. 각 그룹의 수를 선택하고 표시해야합니다.

<?php 
    $q = $db->query("SELECT dateNews, COUNT(*) AS newsCount FROM news GROUP BY dateNews"); 

    while($data = $q->fetch()){ 
     $dateMonth= $data['dateNews']; 
     echo "<a href='#''><p>".strftime('%B %Y', strtotime($dateMonth))." (" . $data['newsCount'] . ")</span></p></a>"; 
    }     
?> 
+0

감사합니다. 패트릭 Q! 그것은 아주 잘 작동합니다! 그러나 이미지와 마찬가지로, 나는 두 번 이상 나타나는 달을 "붕괴"하고, 클릭 할 때 내가 선택한 달의 뉴스 만 표시하고 싶습니다. 그게 가능하니? – takumaterasu

+0

물론이 내용은이 질문의 범위를 벗어납니다. 아마도 이런 사이트의 범위를 벗어난 것일 수도 있습니다. 적어도 당신이하지 않고는 자신의 첫 번째 작업을 더합니다. –