[英]PHP - MySQL “next” - “previous” link with ordering
我有这样的桌子
id | name | image | ordering
------+-------------+------------+--------------
1 | name 1 | one.jpg | 5
------+-------------+------------+--------------
2 | name 2 | two.jpg | 2
------+-------------+------------+--------------
3 | name 3 | thr.jpg | 3
------+-------------+------------+--------------
4 | name 4 | for.jpg | 7
------+-------------+------------+--------------
5 | name 5 | fiv.jpg | 1
------+-------------+------------+--------------
6 | name 6 | six.jpg | 9
------+-------------+------------+--------------
我要求按照顺序在页面中显示第一张图像。 以下查询对我有用
SELECT * FROM images ORDER BY ordering ASC LIMIT 0,1 - row with id 5 will return
接下来,我必须在底部的“上一个”和“下一个”中显示2个链接(由于这是第一页,因此无需显示“上一个”)
Okey ..通过单击“下一步”,我必须显示下一页(即,根据表其ID为2的行)。 在该页面中需要显示“ prev”,这将导致第一个结果。 该页面上的“下一步”必须引向ID为3的行
我努力了
select * from images where id < $local_id order by id desc limit 1
select * from images where id > $local_id order by id asc limit 1
但是既然有订单就行了...
有人可以跟我分享一个主意吗? 提前致谢
在MySQL LIMIT X, Y
是要获取的范围,其中X是起始行(0是第一行),Y是要返回的行数
为了实现您想要的功能,您需要为所浏览的每一页使用页码,然后使用它们来计算X值,Y始终为1,因为每页只需要1张图像。
这样的事情会让您入门:
<?php
$page = (isset($_GET['page'])) ? $_GET['page'] : 1;
$startPoint = $page - 1;
$query = "SELECT * FROM images ORDER BY ordering ASC LIMIT $startPoint,1";
$rowCount = 0; // replace this with a count of all your rows/images
然后你的链接会像
<a href="index.php?page=1">First</a>
<a href="index.php?page=<?php echo $page - 1?>">Prev</a>
<a href="index.php?page=<?php echo $page + 1?>">Next</a>
<a href="index.php?page=<?php echo $rowCount;?>Last</a>
下一个
select * from images where id = $local_id+1 limit 1
以前
select * from images where id = $local_id-1 limit 1
您可以更改限制以实现它,根据页面的更改更改限制。
SELECT * FROM images ORDER BY ordering ASC LIMIT 1,1 - row with id 2 will return
SELECT * FROM images ORDER BY ordering ASC LIMIT 2,1 - row with id 3 will return
不好+1 / -1不好,防止id(页面)不存在,请在以前的id处使用sql。
示例ur主页ID 3和ID 4不存在...发生:
下一个:
select * from images where id = (select min(id) from images where id > 4)
以前:
select * from images where id = (select max(id) from images where id < 4)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.