gpt4 book ai didi

php - 修改分页排序方法以更改每页的行数

转载 作者:行者123 更新时间:2023-11-29 14:26:54 34 4
gpt4 key购买 nike

嗨,我有一个基于PHP的分页和排序方法,效果很好。

我能够根据任何类别进行排序和分页,但在每页行数方面遇到问题。

我使用 GET 方法来获取信息以进行分页和排序

    if (isset($_GET['rpp'])&& is_numeric($_GET['rpp'])) {
$rowsperpage = mysql_real_escape_string($_GET['rpp']);
}else{
$rowsperpage='5';
}
if (isset($_GET['page']) && is_numeric($_GET['page'])) {
$currentpage = (int) mysql_real_escape_string($_GET['page']);
} else {
$currentpage = 1;
}
if (isset($_GET['order']) && in_array($_GET['order'], $order)) {
$orderby = mysql_real_escape_string($_GET['order']);
}else{
$orderby='id';
}
$sortby = '';
if (isset($_GET['sort'])) {
$sortby = mysql_real_escape_string($_GET['sort']);
}else{
$sortby='desc';
}

对于分页,我使用了以下类型的网址字符串

echo " <li><a href='$pagename?order=$orderby&sort=$sortby&rpp=$rowsperpage&page=$nextpage'>Next&raquo;&raquo;</a>

我的 mysql 查询是

$sql2 = "SELECT * FROM internet_security ORDER BY $orderby $sortby LIMIT $rowsperpage OFFSET $offset";

在 html 中,我使用链接对类别进行排序,例如

        <a href="?order=id&sort=desc">id-desc:</a>
<a href="?order=id&sort=asc">id-asc:</a>

<a href="?order=title&sort=desc">title-desc:</a>
<a href="?order=title&sort=asc">title-asc:</a>

**limit rows by**
<a href="?&rpp=5">5</a>
<a href="?&rpp=10">10</a>
<a href="?&rpp=20">20</a>

我的问题是一切都工作正常,除了当我通过 limit rows by 限制每页行数时 - 行数被限制为选择的任何限制(5,10,20),但是如果我单击分页所有内容都会转到其默认设置值,即按 id 并按 DESC 顺序,LIMIT 为 5。

如果我这样做

            <a href="?order=id&sort=desc&rpp=5">id-desc:</a>
<a href="?order=id&sort=desc&rpp=10">id-desc:</a>
<a href="?order=id&sort=desc&rpp=20">id-desc:</a>

然后它就可以工作了,但是我必须至少有 12 个链接才能实现完整功能。这不是标准方法。

我想要的是,一旦默认设置或通过排序选项设置限制,我将能够按 id 标题等进行排序..并且 paginatin 应该与之配合使用。

我希望我说清楚了。请看看我做错了什么,并针对我的方法提出任何可能的解决方案。

最佳答案

(升级到答案)

$rpp 存储在 $_SESSION 变量中,仅当它存在于 $_GET 中时才更新:

    if ( isset($_GET[    'rpp'])) $_SESSION['rpp'] = intval($_GET['rpp']);
elseif (!isset($_SESSION['rpp'])) $_SESSION['rpp'] = 5;

然后在查询中使用 $_SESSION['rpp']:

$sql2 = "
SELECT *
FROM internet_security
ORDER BY $orderby $sortby
LIMIT $_SESSION[rpp] OFFSET $offset
";

关于php - 修改分页排序方法以更改每页的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783445/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com