Php:档案系统,如博客

时间:2014-07-25 19:26:23

标签: php html date blogs archive

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

例如,当用户点击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

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

1 个答案:

答案 0 :(得分: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>";
    }                   
?>