10/10/2018, 09:17
Tin được xem nhiều nhất, viết code bằng PHP như thế nào?
Mình đang làm 1 trang web trong đó có phần tin được xem nhiều nhất. Mình không biết phải làm như thế nào cả? Các bạn giúp mình với. Càng chi tiết càng tốt vì mình đang tự học ngôn ngữ này. Cám ơn các bạn rất nhiều
Bài liên quan
Ví dụ: bạn có một mẩu tin (bài viết) nhan đề "Làm sao biết được tin nào được xem nhiều nhất". Khi lưu vào cơ sở dữ liệu nó sẽ có một số ID duy nhất để phân biệt với bài viết khác.
Mình giả sử bạn có table đơn giản sau để lưu bài viết của bạn
table posts
Và trên trang web thì bạn hiển thị bài viết theo kiểu như sau:
Như vậy, trong file display.php bạn phải có lệnh xử lý là khi bạn đọc DB lấy bài viết lên thì đồng thời bạn cập nhật luôn nó bằng một câu lệnh SQL dạng "UPDATE ...." (bạn từ đọc sách) để luot_xem của nó được cộng thêm 1.
Và dĩ nhiên, khi tất cả các bài viết đều có lượt xem (nhỏ nhất =0, lớn nhất thì tùy), bạn có thể dùng câu lệnh SQL để lấy được bài viết nào có luot_xem là lớn nhất. Câu lệnh SQL gần gần như là: SELECT Max(luot_xem) FROM posts
Okie?
Bác nhầm. Chỗ này không phải update lên 1 đơn vị mà phải là cộng thêm 1 số random từ 1 đến 100
Nếu các đồng chí có kinh nghiệm hoặc giải pháp nào mời thảo luận luôn ở đây.
Tui chỉ biết sơ sơ về .NET chứ không rành về php, giải pháp của tui là tạo 1 table temp, gồm 2 columns là ID và Count (là column chứa số lượt xem), sau đó write tất tần tật cái table temp đó ra 1 file xml (serialized). Khi cần hiển thị tin xem nhiều nhất thì đầu tiên là tui sẽ đọc cái table đó lên (đọc từ xml), sau đó select top 10 và order by Count (DESC) thì nó sẽ ra 1 dãy ID của 10 thằng được xem nhiều nhất => dùng cái dãy đó mà query DB. Khi cần update lại số Count thì cũng đọc cái table đó lên và gọi lệnh Update.
Do table đó sẽ được đọc/ghi nhiều lần nên tui chỉ đọc 1 lần duy nhất sau đó cho nó vào bộ nhớ của web (bên .NET là Application), mỗi khi có nhu cầu update column Count thì cứ update cái table trong bộ nhớ đó, và cứ sau mỗi chu kỳ nhất định (ví dụ 20 phút) là tui sẽ write ra file xml (đề phòng Application bị restart sẽ bị mất giá trị của table nằm trong đó)
Trong database có 1 table tên là review, mình định tạo thêm 1 field là review_num để đếm số bài phản hồi dựa trên field event_id. Mình không biết làm thế nào để cột review_num hoạt động được. Mình dùng phần mềm xampp để quản lý database. Giúp mình với, cám ơn các bạn rất nhiều
Để tính số review cho 1 tin, bạn select count trong bảng review với NewsID tương ứng.
Lẽ nào bản thân web sơ-vơ không quản lý vấn đề đó