我从包含2个字段的表中使用PDO获取数据: comment 和 date 。
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row);
echo $comment;
echo $date;
}
显示所有评论的列表。
现在我试图按月对这些评论进行分组,主要目标是创建一个带有GET值的过滤器菜单,以便只显示当前月份的评论:
<ul>
<li><a href="comments.php?month=1014">October 2014</a></li>
<li><a href="comments.php?month=1114">November 2014</a></li>
<li><a href="comments.php">December 2014</a></li>
</ul>
我认为我应该使用LIKE运算符来显示结果,但菜单链接生成怎么样?
主要问题:$ date采用d / m / Y格式,因此我必须在使用之前进行处理:
$created = $date;
$month = $created->format('mY');
此外,我事先并不能确切地知道哪些月份会在表格中注册,因此必须是&#34;动态&#34;。
那么如何获得表格中出现的每个月的列表?当然没有冗余。喜欢
1014
1114
1214
即使10月份创建了大量评论,例如。
答案 0 :(得分:1)
您可以使用MySQL的STR_TO_DATE和DATE_FORMAT函数以您需要的格式返回日期。例如:
SELECT `comment`, DATE_FORMAT(STR_TO_DATE(`date`, "%d/%m/%Y"), "%m%y") as `date2` FROM `data`
如果您需要查询所有唯一的月/年组合,请使用DISTINCT:
SELECT DISTINCT DATE_FORMAT(STR_TO_DATE(`date`, "%d/%m/%Y"), "%m%y") as `date2` FROM `data`
这是显示不同选择的SQL fiddle。