Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

php और mysql का उपयोग करके वर्ष और महीने के अनुसार संग्रह को समूहीकृत करना

उसके बारे में क्या?

$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 का प्रयोग करें एक अलग विभाजक निर्दिष्ट करने का विकल्प (दस्तावेज़ की जाँच करें)।

दस्तावेज़ीकरण:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विशिष्ट अक्षांश/देशांतर के निकट क्रम तालिका (MySQL+PHP का उपयोग करके)

  2. कई कॉलम अपडेट करने के लिए MySQL केस

  3. GROUP BY कथन का अग्रिम-आदेश देना

  4. mysql कनेक्टर/सी ++ में सेटब्लॉब का उपयोग करके बाइनरी डेटा सेट करें क्रैश का कारण बनता है

  5. MySQL:रूट खाते तक नहीं पहुंच सकता