10/10/2018, 10:42

go to next và prev record mysql

Mình muốn lấy mẫu tin kế tiếp và trước đó thì phải làm như thế nào?
Vd:

tin aa

PREV Next
Khi bấm vào NEXT thì đế mẫu tin kế còn prev thì quay về mẫu tin trước đó.

Hướng giải quyết của mình là lấy vitri id tin(tin aa) nằm ờ vịtri thứ mấy?
Mình làm như thế này thấy chưa tối ưu code lắm

$sql = "SELECT * FROM category";
$result = mysql_query($sql);
$i=-1; // do mang tinh tu 0
if (mysql_num_rows($result)>0) {
while($row=mysql_fetch_assoc($result))
{
if($row['idCategory']==$id)
break;
$i++;
}
}
=> $i là vi tri can tim;
Không biết có cách nào tối ưu hơn không?
Các bác biết hướng dẫn giúp
Thanks
ngoc_viet08 viết 12:46 ngày 10/10/2018
giải pháp pro dữ ...

next : (bài mới hơn)
select * from category where id > current_id order by id asc limit 0,1

pre : (bài cũ hơn)
select * from category where id < current_id order by id desc limit 0,1
freshgraduate09 viết 12:52 ngày 10/10/2018
Được gửi bởi ngoc_viet08
giải pháp pro dữ ...

next : (bài mới hơn)
select * from category where id > current_id order by id asc limit 0,1

pre : (bài cũ hơn)
select * from category where id < current_id order by id desc limit 0,1
không tối ưu. để lấy ra 2 cái con trỏ next prev mà phải chạy 2 lần select * duyệt qua cả bảng để lấy chỉ top 1 thôi à
ngoc_viet08 viết 12:49 ngày 10/10/2018
mời pro cho cao kiến với
thuyduongcd viết 12:54 ngày 10/10/2018
Biết cấu trúc DB ra sao đâu mà trả lời
zmt264 viết 12:48 ngày 10/10/2018
Được gửi bởi freshgraduate09
không tối ưu. để lấy ra 2 cái con trỏ next prev mà phải chạy 2 lần select * duyệt qua cả bảng để lấy chỉ top 1 thôi à
tối ưu hơn thì trong lúc lấy tin ra, tranh thủ lấy cả id của 2 thằng trước và sau, thì đỡ phải query lại
cuipap viết 12:59 ngày 10/10/2018
Được gửi bởi zmt264
tối ưu hơn thì trong lúc lấy tin ra, tranh thủ lấy cả id của 2 thằng trước và sau, thì đỡ phải query lại
tối ưu hơn nữa nè: lấy nguyên cái db ra để vào ram rồi tha hồ chạy, never select lại
honnhienh viết 12:46 ngày 10/10/2018
toàn những cao thủ. đang tính làm một cái phân trang pro chút. giống thằng youtube
freshgraduate09 viết 12:47 ngày 10/10/2018
Được gửi bởi cuipap
tối ưu hơn nữa nè: lấy nguyên cái db ra để vào ram rồi tha hồ chạy, never select lại
cách này tồi nhất . Ram nào chứa đủ database 1 website lớn. Còn phải lo đồng bộ hóa với server vì ứng dụng web la môi trường phân tán, multi-user
honnhienh viết 12:50 ngày 10/10/2018
Được gửi bởi freshgraduate09
cách này tồi nhất . Ram nào chứa đủ database 1 website lớn. Còn phải lo đồng bộ hóa với server vì ứng dụng web la môi trường phân tán, multi-user
bác ấy nói vui đó mà. ai lại chơi nguyên cái database bác.
Bài liên quan
0