उसके बारे में क्या?
$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>';
यह समाधान इसे PHP तरीके से करता है, लेकिन आपको SQL क्वेरी के साथ भी परिणाम प्राप्त करने में सक्षम होना चाहिए, जैसे कुछ:
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
जो चाहिए वर्ष और महीने से संबंधित सभी पदों को एक पंक्ति में (परीक्षण नहीं किया गया), अल्पविराम से अलग करें। WITH SEPARATOR
का प्रयोग करें एक अलग विभाजक निर्दिष्ट करने का विकल्प (दस्तावेज़ की जाँच करें)।
दस्तावेज़ीकरण: