10/10/2018, 09:38
PHP: Lấy mãu tin mới hơn và cũ hơn so với mẫu tin x
Ở trang mẫu tin xem chi tiết, mình muốn lấy các tin cũ hơn và mới hơn so với mẫu tin hiện tại thì làm sao ấy nhỉ, ai biết chỉ với nha.
Ví dụ: mẫu tin đang xem chi tiết là thứ 49(Thứ 49 chứ không phải ID 49 nhé)
mình muốn lấy cũ hơn là từ: 41->48 và mới hơn là từ 50->57.
Ví dụ: mẫu tin đang xem chi tiết là thứ 49(Thứ 49 chứ không phải ID 49 nhé)
mình muốn lấy cũ hơn là từ: 41->48 và mới hơn là từ 50->57.
Bài liên quan
Lấy mẩu tin cũ hơn:
131
130
129
....
Lấy mẩu tin mới hơn:
133
134
135
....
Chú ý: Riêng phần nãy fetch ra nó ngược vì mẩu tin mới nhất phải nằm trên đầu. Khắc phục bằng cách cho vào 1 mảng rồi xuất ngược cái mảng đó.
trong câu truy vấn để order by DESC là đc mà
1
2
4
5
6
8
9
10
11
13
15
16
17
18
19
Nhiệm vụ lấy 3 tin cũ hơn tin có id = 10
9
8
7
Phần này ko có gì để bàn.
Nhiệm vụ lấy 3 tin mới hơn tin có id = 10. Chú ý mới hơn nhưng phải sát tin thứ 10 chứ ko phải 3 tin mới nhất.
11
13
15
.... Nhưng ở đây tin 15 là tin mới hơn tin 13 và 11. Vậy tin đó khi hiển thị ra phải được nằm trên 2 tin kia. Vậy thì phải
15
13
11
Tất cả như vậy ta sẽ có:
Các tin mới hơn:
15
13
11
Các tin cũ hơn
9
8
7
@svchip
Nếu như ban thì sẽ là
19
18
17
Đây là 3 tin mới nhất. Chứ ko phải 3 tin mới hơn sát tin đang coi.
Hãy làm 1 lần để hiểu rõ hơn.
Thuc te thi` cac loai du lieu dang nay can co field display -> boolean
neu display= true thi hien thi , false thi ko hien thi
Ly do:
1 nguoi co the reply cho 1 topic nao do, tuc la du lieu reply co dang sau:
id_replier,title,body,time,news_id
trong do news_id la khoa ngoai, tham chieu den news_id trong table news
Neu ban xoa dong tin cua table news thi dong loat phai xoa cac dong reply doi voi topic news_id. Trong thuc te khong co ai lam nhu vay.
VD: Tai forum nay` neu ban bi ban nick thi` nick ban bi gach di, nhung cac topic ban tao ra van ko bi xoa, vi da co nguoi tra loi, lam` sao xoa du lieu o bang cha ma ko kiem tra du lieu o bang con co tham chieu toi.
select * from news where id between 11 and 13 order by id desc
Lúc này dữ liệu đưa ra là
13
12
11
Bạn thử câu lệnh này xem sao?
select * from news where id between 7 and 9 order by id desc
Dữ liệu đưa ra tương tự sẽ là
9
8
7
[=========> Bổ sung bài viết <=========]
Và cách của bác S-Gallery thì sẽ lấy ra mẫu tin mới nhất của Table, huhu
Lấy mẩu tin cũ hơn:
Code:
select * from news where id < 132 order by id desc limit 0,10
kết quả:
131
130
129
....
Lấy mẩu tin mới hơn:
Code:
select * from news where id > 132 order by id asc limit 0,10
kết quả:
133
134
135
....
Chú ý: Riêng phần nãy fetch ra nó ngược vì mẩu tin mới nhất phải nằm trên đầu. Khắc phục bằng cách cho vào 1 mảng rồi xuất ngược cái mảng đó.
Lấy mẩu tin cũ hơn:
kết quả:
129
130
131
....