2014-11-24 184 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