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

Làm thế nào để tạo bình luận theo luồng với 1 hoặc 2 truy vấn?

Nếu bạn chỉ cần 2 cấp độ, đây là một cách với một truy vấn:

Bàn của bạn - id, parent_id, comment cột

$rows = mysql_query('
  select *
  FROM
    comments
  ORDER BY
    id DESC');

$threads = array();
foreach($rows as $row) {
  if($row['parent_id'] === '0') {
    $threads[$row['id']] = array(
      'comment' => $row['comment'],
      'replies' => array()
    );
  } else {
    $threads[$row['parent_id']]['replies'][] = $row['comment'];
  }
}

Trong $threads bạn sẽ có tất cả các chuỗi chính và $threads[$id]['replies'] giữ tất cả các câu trả lời. Các chủ đề được sắp xếp - mới nhất =trước tiên, hãy thêm một số phân trang và bạn đã sẵn sàng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn hàng ngẫu nhiên cho mỗi giá trị trường riêng biệt?

  2. Thêm tháng bị thiếu vào kết quả truy vấn

  3. Làm cách nào để đặt số hàng tối đa trong bảng MySQL?

  4. Làm thế nào để chèn nhiều hàng trong cơ sở dữ liệu mysql cùng một lúc với các câu lệnh đã chuẩn bị?

  5. MySQL:Hai quan hệ n:1, nhưng không phải cả hai cùng một lúc