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

Hàm đệ quy để nhận xét và trả lời ứng dụng PHP

Cốt lõi của vấn đề là:

$comments = $commentClass->fetch_article_comments($article_id);

Tôi giả sử, hàm này somwhere tạo và chạy SQL, tương tự như SELECT ... WHERE comments.article_id=$article_id . Điều này là chưa đủ - bạn cần một cái gì đó như

$comments = $commentClass->fetch_article_comments($article_id, $parent_id);

dịch sang SQL tương tự như SELECT ... WHERE comments.article_id=$article_id AND comments.comment_parent ($parent_id>0)?"=$parent_id":"IS NULL"

Bây giờ bạn có thể viết hàm PHP của mình:

function display_comments ($article_id, $parent_id=0, $level=0) {
  $comments = $commentClass->fetch_article_comments($article_id, $parent_id);
  foreach($comments as $comment) {
        $comment_id = $comment['comment_id'];   
        $member_id = $comment['member_id'];
        $comment_text = $comment['comment_text'];
        $comment_timestamp = timeAgo($comment['comment_timestamp']);  //get time ago

        //render comment using above variables
        //Use $level to render the intendation level

        //Recurse
        display_comments ($article_id, $comment_id, $level+1);
    }
}

Và cuối cùng gọi nó bằng display_comments ($article_id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa khỏi bảng bằng cách sử dụng cột của bảng khác

  2. Truy xuất thẻ dựa trên ID bài đăng

  3. MySQL Views:Tham chiếu một trường được tính toán (theo tên) trong một trường được tính toán khác

  4. Mục nhập trùng lặp cho khóa 'group_key'

  5. Di cư phía nam Django - Thêm chỉ mục FULLTEXT