Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

phân nhóm kho lưu trữ theo năm và tháng bằng php và mysql

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:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DriverManager không có trình điều khiển phù hợp mysql

  2. Làm thế nào để thực hiện Mô hình kế thừa trong Cơ sở dữ liệu quan hệ?

  3. Làm cách nào để chúng ta thực hiện các thao tác trên kiểu dữ liệu nhị phân SQL?

  4. Chèn SQL trong ADOdb và bảo mật trang web chung

  5. Kiểm tra sự chồng chéo của các phạm vi ngày trong MySQL