在我的网站上,我有一个“新闻”页面,客户可以在其中添加无限数量的新闻(日期存储在数据库中(使用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>";
}
?>
但我想要这个:
我的日期列出正确,但我真的不知道如何解决问题。
有人能帮助我吗?
编辑:
经过大量研究,我找到了合并的解决方案:
<?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>";
}
?>
月份已正确合并,但现在我还有另一个无法解决的问题:
我真的不知道该做什么或怎么做。有人知道吗?
答案 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>";
}
?>