【问题标题】:PHP - Displaying Blog Menu by DatePHP - 按日期显示博客菜单
【发布时间】:2011-06-19 19:08:02
【问题描述】:

我创建了一个函数来显示日期和这些日期内的帖子数,用作我的博客菜单,但它只能部分工作,如果有任何帮助,我们将不胜感激。

被调用的函数:

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)

【问题讨论】:

  • 我猜,一个简单的 WHERE date ='?'你的查询条件会做。然后统计获取的行数。
  • 我已经有了 where date = 条件。例如,如果一个月有 10 个帖子,我只希望回显发布一次,计数已经有效。
  • “我只希望回显发布一次..”是什么意思?
  • 好吧,我不希望代码中的回显在一个月内为每个帖子重复,如果有两个帖子,我不希望菜单回显两次,只是增加计数。

标签: php mysql database blogs date


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 2018-02-01
    • 1970-01-01
    • 2019-05-20
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多