- Tham gia
- 28/02/2015
- Bài viết
- 17,142
- Được Like
- 12,745
Có 1 điều khá nhức nhối đối với diễn đàn Xenforo đó là thành viên chỉ có thể xóa bài viết của mình ở dạng tạm thời (unpublic), nghĩa là bài viết đó mặc dù bị xóa nhưng thực chất nó vẫn còn tồn tại, và chỉ có admin và mod thấy được. Và ngày qua ngày, số lượng bài viết unpublic đó ngày càng nhiều và nó sẽ khiến database chứa thêm 1 lượng rác thải vô ích. Vậy làm sao để có thể xử lý nhanh gọn số rác thải này?
Hôm nay mình xin hướng dẫn một số câu query trong phpmyadmin rất có ích khi muốn control với toàn bộ bài post và topic của thành viên hay toàn bộ diễn đàn. Đây là các chức năng Xenforo thiếu và chưa có.
Ở đây ta sẽ control các bài viết đã bị member xóa dưới dạng unpublic để xóa hẳn hay phục hồi. Các bạn chú ý các câu query này rất dễ và không phức tạp gì cả, nhưng lần đầu làm thì nên làm thử ở localhost hay backup trước khi Delete hay Update , còn Select thì ko sao.
Việc đầu tiên các bạn cần vào phpmyadmin, sau đó vào database Xenforo của bạn, rồi chọn table xf_post và chọn tab SQL như sau:
Sau đó, tùy vào nhu cầu của bạn có thể chọn các câu query dưới đây để áp dụng.
1. Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic
Tìm toàn bộ
Xóa toàn bộ :
Phục hồi toàn bộ :
Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trong khoảng thời gian. Các bạn nên chú ý cú pháp này vì nó khá hữu hiệu khi phải xử lý trong 1 khoảng time nhất định.
Cú pháp : UNIX_TIMESTAMP( 'YEAR-MONTH-DAY 00:00:00') (các bạn tùy chọn, nhớ là month trước day nha)
Tìm trước 30 tháng 7 bài viết đã bị thành viên xóa dưới dạng unpublic :
Tìm trong tháng 6 tới 30 tháng 7 bài viết đã bị thành viên xóa dưới dạng unpublic
Xóa toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trước 30 tháng 7
Xóa toàn bộ bài viết trong tháng 6 tới 30 tháng 7 đã bị thành viên xóa dưới dạng unpublic
Phục hồi toàn bộ bài viết trong tháng 6 tới 30 tháng 7 đã bị thành viên xóa dưới dạng unpublic
Giá sử ta có member có id = 20
2. Toàn bộ bài viết đã bị 1 thành viên xóa dưới dạng unpublic có id là 20
Xóa toàn bộ :
Phục hồi toàn bộ :
Tương tự cũng tìm trong tháng và thêm biến And user_id =20 vào
Tìm trước 30 tháng 7 bài viết đã bị thành viên có ID 20 xóa dưới dạng unpublic :
Xóa trong tháng 6 tới 30 tháng 7 bài viết đã bị thành viên có ID 20 xóa dưới dạng unpublic
Giả sử ta có theard có id = 10
3. Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trong topic có id là 10
Tương tự như trên nhưng thay
thành
Ví dụ :
Phục hồi toàn bộ :
4. Toàn bộ bài viết đã bị thành viên có id là 20 dưới dạng unpublic trong topic có id là 10
Tìm toàn bộ
Xóa toàn bộ :
Phục hồi toàn bộ :
Tìm trong 1 khoảng thời gian cũng tương tự như trên. Chúc các bạn thành công.
Hôm nay mình xin hướng dẫn một số câu query trong phpmyadmin rất có ích khi muốn control với toàn bộ bài post và topic của thành viên hay toàn bộ diễn đàn. Đây là các chức năng Xenforo thiếu và chưa có.
Ở đây ta sẽ control các bài viết đã bị member xóa dưới dạng unpublic để xóa hẳn hay phục hồi. Các bạn chú ý các câu query này rất dễ và không phức tạp gì cả, nhưng lần đầu làm thì nên làm thử ở localhost hay backup trước khi Delete hay Update , còn Select thì ko sao.
Việc đầu tiên các bạn cần vào phpmyadmin, sau đó vào database Xenforo của bạn, rồi chọn table xf_post và chọn tab SQL như sau:
1. Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic
Tìm toàn bộ
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
Xóa toàn bộ :
Mã:
DELETE FROM xf_post WHERE
message_state = 'deleted'
Phục hồi toàn bộ :
Mã:
UPDATE xf_post
SET message_state = 'visible'
WHERE message_state = 'deleted'
Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trong khoảng thời gian. Các bạn nên chú ý cú pháp này vì nó khá hữu hiệu khi phải xử lý trong 1 khoảng time nhất định.
Cú pháp : UNIX_TIMESTAMP( 'YEAR-MONTH-DAY 00:00:00') (các bạn tùy chọn, nhớ là month trước day nha)
Tìm trước 30 tháng 7 bài viết đã bị thành viên xóa dưới dạng unpublic :
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
Tìm trong tháng 6 tới 30 tháng 7 bài viết đã bị thành viên xóa dưới dạng unpublic
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
AND post_date > UNIX_TIMESTAMP( '2012-06-30 00:00:00')
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
Xóa toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trước 30 tháng 7
Mã:
DELETE FROM xf_post
WHERE message_state = 'deleted'
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
Xóa toàn bộ bài viết trong tháng 6 tới 30 tháng 7 đã bị thành viên xóa dưới dạng unpublic
Mã:
DELETE FROM xf_post
WHERE message_state = 'deleted'
AND post_date > UNIX_TIMESTAMP( '2012-06-30 00:00:00')
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
Phục hồi toàn bộ bài viết trong tháng 6 tới 30 tháng 7 đã bị thành viên xóa dưới dạng unpublic
Mã:
UPDATE xf_post
SET message_state = 'visible'
WHERE message_state = 'deleted'
AND post_date > UNIX_TIMESTAMP( '2012-06-30 00:00:00')
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
Giá sử ta có member có id = 20
2. Toàn bộ bài viết đã bị 1 thành viên xóa dưới dạng unpublic có id là 20
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
AND user_id =20
Xóa toàn bộ :
Mã:
DELETE FROM xf_post WHERE
message_state = 'deleted'
AND user_id =20
Phục hồi toàn bộ :
Mã:
UPDATE xf_post
SET message_state = 'visible'
WHERE message_state = 'deleted'
AND user_id =20
Tương tự cũng tìm trong tháng và thêm biến And user_id =20 vào
Tìm trước 30 tháng 7 bài viết đã bị thành viên có ID 20 xóa dưới dạng unpublic :
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
AND user_id =20
Xóa trong tháng 6 tới 30 tháng 7 bài viết đã bị thành viên có ID 20 xóa dưới dạng unpublic
Mã:
DELETE FROM xf_post
WHERE message_state = 'deleted'
AND post_date > UNIX_TIMESTAMP( '2012-06-30 00:00:00')
AND post_date < UNIX_TIMESTAMP( '2012-07-30 00:00:00')
AND user_id =20
Giả sử ta có theard có id = 10
3. Toàn bộ bài viết đã bị thành viên xóa dưới dạng unpublic trong topic có id là 10
Tương tự như trên nhưng thay
Mã:
AND user_id =20
thành
Mã:
AND thread_id =10
Ví dụ :
Mã:
DELETE FROM xf_post WHERE
message_state = 'deleted'
AND thread_id =10
Phục hồi toàn bộ :
Mã:
UPDATE xf_post
SET message_state = 'visible'
WHERE message_state = 'deleted'
AND thread_id =10
4. Toàn bộ bài viết đã bị thành viên có id là 20 dưới dạng unpublic trong topic có id là 10
Tìm toàn bộ
Mã:
SELECT * FROM xf_post
WHERE message_state = 'deleted'
AND user_id =20
AND thread_id =10
Xóa toàn bộ :
Mã:
DELETE FROM xf_post WHERE
message_state = 'deleted'
AND user_id =20
AND thread_id =10
Phục hồi toàn bộ :
Mã:
UPDATE xf_post
SET message_state = 'visible'
WHERE message_state = 'deleted'
AND user_id =20
AND thread_id =10
Tìm trong 1 khoảng thời gian cũng tương tự như trên. Chúc các bạn thành công.
Nguồn: vietdesigner.net
Bài viết liên quan
Bài viết mới