Còn điều đó thì sao?
$data = array();
while($row = $stmt->fetch()){
$monthName = date("F", mktime(0, 0, 0, $row['Month'], 10));
$data[$row['Year']][$monthName][] = array(
'post' => $row['postTitle'],
'slug' => 'a-'.$row['Month'].'-'.$row['Year']
);
}
echo '<ul>';
foreach ($data as $year => $yearData){
echo "<li>$year<br/>";
echo '<ul>';
foreach ($yearData as $month => $monthData){
echo "<li>$month<br/>";
echo '<ul>';
foreach ($monthData as $number => $postData){
echo "<li><a href='${postData['slug']}'>Post $number</a><br/>";
echo "<a href='#'>${postData['post']}</a></li>";
}
echo '</ul></li>';
}
echo '</ul></li>';
}
echo '</ul>';
Giải pháp này thực hiện theo cách của PHP, nhưng bạn cũng có thể nhận được kết quả bằng một truy vấn SQL, với những thứ như:
SELECT
Year(postDate) as Year, Month(postDate) as Month,
GROUP_CONCAT(postTitle) as posts
FROM
blog_posts_seo
GROUP BY Year, Month
ORDER BY postDate DESC
cái nào nên trả lại tất cả các bài đăng liên quan theo năm và tháng trong một hàng duy nhất (không được kiểm tra), được phân tách bằng dấu phẩy. Sử dụng WITH SEPARATOR
để chỉ định một dấu phân tách khác (kiểm tra tài liệu).
Tài liệu: