10/10/2018, 13:21
Cho mình hỏi về code đếm số comment của bài viết bằng php
Mình đang làm 1 trang tin tức bằng php
CSDL của mình có bảng data lưu bài viết và bảng comment. Trong bảng comment có trường cm_post_id để đánh dấu cm nào thuộc bài viết nào. giờ mình muốn đếm tổng số comment của mỗi bài viết thì làm như thế nào mong các bạn giúp đỡ
CSDL của mình có bảng data lưu bài viết và bảng comment. Trong bảng comment có trường cm_post_id để đánh dấu cm nào thuộc bài viết nào. giờ mình muốn đếm tổng số comment của mỗi bài viết thì làm như thế nào mong các bạn giúp đỡ
Bài liên quan
1. Bác thêm luôn trường comment_count vào bảng post của bác. Mỗi lần 1 comment được publish thì bác tăng trường đó lên 1, cmt bị unpublish thì bác giảm xuống 1. Cách này ưu điểm là nhanh và không mắc công truy vấn vào bảng cmt
2. Cách hai là select count (comment_id) của bảng cmt where cm_post_id = id của post bác đang cần biết có bao nhiu cmt. Cách này mắc công truy vấn db chắc chết mệt với bác
$total = mysql_result ( mysql_query ( "SELECT COUNT(id) FROM comment WHERE baivietID=$id " ), 0 );
echo "$total, nguoi binh luan ";
Chúc Thành công.
Nếu lưu 1 trường lưu số comments vào bảng bài viết thì sẽ nhanh nhưng ko tối ưu csdl. Ko nhất thiết phải lưu 1 cột riêng như vậy nếu cần đếm cái gì cũng lưu thành 1 cột như vậy thì còn gì là cái csdl quan hệ nữa. Muốn nhanh thì ngoài thiết lập csdl ra còn nhiều cách khác nhau nữa còn csdl cái quan trọng nhất vẫn là chuẩn hóa. Lưu 1 cột như vậy mỗi lần thêm xóa comment lại phải chạy code đọc số comment hiện tại rồi lại thêm bớt như vậy nhanh chỗ này lại chậm vài chỗ khác rồi.