PHP:像博客一样的档案系统

Posted

技术标签:

【中文标题】PHP:像博客一样的档案系统【英文标题】:Php: Archives system like blog 【发布时间】:2014-07-25 19:26:22 【问题描述】:

在我的网站上,我有一个“新闻”页面,客户可以在其中添加无限数量的新闻(日期存储在数据库中(使用 CURRENT_TIMESTAMP))。

例如当用户点击七月时,页面上只会出现七月的新闻。

目前,我只有这个:

<?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>";
                       
?>

但我想要这个:

我的日期列出正确,但我真的不知道如何解决问题。

有人可以帮帮我吗?

编辑:

经过大量研究,我找到了同月合并的解决方案:

<?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>";
    
?>

月份已正确合并,但现在我遇到了另一个无法解决的问题:

我真的不知道该做什么或怎么做。有人知道吗?

【问题讨论】:

【参考方案1】:

假设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>";
                       
?>

【讨论】:

感谢帕特里克 Q!它工作得很好!但就像图像一样,我想“折叠”多次出现的月份,并在我点击时仅显示我选择的月份的新闻。这可能吗? 当然,但这超出了书面问题的范围。甚至可能超出了这样的网站的范围。至少不用你自己做更多的工作。

以上是关于PHP:像博客一样的档案系统的主要内容,如果未能解决你的问题,请参考以下文章

svn

PHP 处理档案中的文件

基于mysql+php066医疗档案管理系统

如何为我的自定义博客帖子创建档案?

SVN版本管理系统最佳应用实践

基于php026教师档案师资信息管理系统