简单的PHP MySQL分页(显示更多按钮,带参数)


Simple PHP MySQL pagination (show more button, with parameters)

我想为我的网站创建一个简单的分页。
我有一个表的行与3值
id (AI)
名称
价格

SELECT * FROM `mytable` ORDER BY `id`LIMIT 10

我使用非常简单的MySQL请求来显示它,并使用JS/AJAX按钮来显示更多。当它按ID排序时,很容易显示更多-我知道最后一个ID,并且我将此信息添加到下一个请求

SELECT * FROM `mytable` WHERE `id` > $lastid ORDER BY `id` LIMIT 10

但是,如果我按价格订购,我如何创建相同的分页?
同样的价格可以是100件,所以我不能写

WHERE `price` > $lastprice

,因为它只显示10%的相同价格的商品
而且,我不能写

WHERE `price` > $lastprice AND `id` > $lastid

因为id最大的商品价格更低。有什么可行的办法吗?
谢谢!
注:实际上这不是一个真正的分页,它只有一个按钮"SHOW MORE",从服务器通过AJAX获取下一个10项。

你可以通过javascript,当调用ajax函数,传递它的行数已经打印,然后在mysql更改查询

..... LIMIT "value passed", 10

在这种情况下实际上不需要WHERE子句。查询应该像这样

SELECT * FROM `mytable` ORDER BY `price` DESC LIMIT <offset>, <results per page>

其中offset是要跳过的结果数,results per page是要返回的结果数(在您的示例中为10)。例如,为了计算offset值,您需要页码而不是最后的id。如果你知道,然后(我假设是php在后端):

$page = isset($_GET['page']) ? $_GET['page'] : 1;
$offset = ($page - 1) * <resutls per page>;

这样第一页的偏移量为0,第二页为10,依此类推