2011-06-19 55 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