2014-11-24 187 views
0

我与PDO含有2个字段的表中获取数据唯一相似的部分名单:评论日期PDO:获得价值

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运算符可以很好地显示结果,但菜单链接生成又如何?

主要问题:$日期是d/M/Y的格式,所以我必须在使用之前处理:

$created = $date; 
$month = $created->format('mY'); 

而且我真的不能提前知道哪个月要在表格中注册,所以它必须是“动态的”。

那么我如何得到每个月出现在表格中的列表?当然没有冗余。像

1014 
1114 
1214 

即使在10月份创建了很多评论。

回答

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

+0

谢谢你,太棒了。 – kursus 2014-11-24 19:03:56