2011-06-19 46 views
0

我创建了一个函数来显示这些日期内的帖子的日期和计数,以用作我的博客菜单,但它只是部分工作,任何帮助,这将不胜感激。PHP - 按日期显示博客菜单

被调用函数:

function displayBlogMenu() 
{ 
    blogDBSelect(); 
    $sql = "SELECT datePosted FROM blog_entries"; 
    $results = mysql_query($sql);   
    while($post = mysql_fetch_array($results)) 
    { 
     $startDate = date('Y-m-01', strtotime($post['datePosted'])); 
     $endDate = date('Y-m-01', strtotime("+1 month", strtotime($post['datePosted']))); 
     $sql2 = "SELECT * FROM blog_entries WHERE datePosted >= '$startDate' AND datePosted < '$endDate'"; 
     $results2 = mysql_query($sql2); 
     $count = mysql_num_rows($results2); 
    }         
    echo '<a href="">'.date('F, Y', strtotime($startDate)).' ('.$count.' Posts)</a><br>'; 
} 

我希望函数返回日期的链接,例如:

June, 2011 (10 Posts) 
July, 2011 (2 Posts) 
+0

我想,一个简单的WHERE日期='?'你的查询条件会做。然后对取出的行进行计数。 – froditus

+0

我已经有了where date =条件。例如,如果一个月内有10个帖子,我只希望发布一次回声,则此次计数已经有效。 – Chris

+0

你是什么意思,“我只想回声被张贴一次..”? – froditus

回答

4

看起来你可以做到这一点通过一个单一查询

SELECT Date_format(dateposted, '%M, %Y'), 
     COUNT(*) AS cc 
FROM blog_entries 
GROUP BY YEAR(dateposted), 
      MONTH(dateposted) 
ORDER BY COUNT(*) DESC, 
      dateposted DESC