我的博客有一个存档部分。每次有帖子时,我都希望它自动以列表形式显示月份名称和年份,因此以后我可以单击以查看该月份和年份的帖子。
我只知道如何使用mysql_fetch_assoc进行显示,但这会不断重复每一行,因此我尝试了GROUP BY,但也无济于事。
<div class="sidebox widget">
<h4>Por Datas</h4>
<?php
$query = "SELECT * FROM posts GROUP BY post_date";
$select_all_post_by_dates = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($select_all_post_by_dates)) {
$post_id = $row['post_id'];
$post_date = $row['post_date'];
$post_date_month_year = date_create($post_date)
?>
<ul class="circled">
<li>
<a href="#"><?php echo date_format($post_date_month_year, "F Y") ?>
</a>
</li>
</ul><!-- /.circled -->
<?php } ?>
<a href="#" class="txt-btn">All archives</a>
</div><!-- /.widget -->
结果是月份重复一个月又一个月,例如:
2019年4月 2019年四月 2019年4月
如果我5月还有一则帖子
2019年4月 2019年四月 2019年四月 2019年5月
我需要:
2019年4月 2019年5月
答案 0 :(得分:0)
按年和月按行分组
SELECT
Year(`post_date`),
Month(`post_date`),
Day(`post_date`),
Count(*) As Total_Rows
FROM posts
GROUP BY Year(`post_date`), Month(`post_date`), DAY(`post_date`)