我的分页脚本显示的结果与第2页以后的第一页相同。
这是我用于文章等的原始分页脚本。它返回文章和类别并加入它们以显示文章&每篇文章的类别,但仅在最近两个月内发布'制品
$page = isset($_GET['page']) ? (int)$_GET['page'] :1;
$perpage =10;
$start = ($page>1) ? ($page*$perpage)-$perpage :0;
$selects = $DB->prepare("
SELECT SQL_CALC_FOUND_ROWS articles.*, art_categories.*
FROM art_categories LEFT JOIN articles
ON articles.categoryID=art_categories.categoryID
WHERE articles.categoryID=art_categories.categoryID
AND articles.publishDate < DATE(NOW() + INTERVAL 2 MONTH)
ORDER BY articles.publishDate DESC LIMIT {$start},10
");
$selects->execute();
$selects= $selects->fetchALL(PDO::FETCH_ASSOC);
$total = $DB->query("SELECT FOUND_ROWS() as total")->fetch()['total'];
$pages = ceil($total / $perpage);
然后我再次使用它来查看我的文章类别页面,根据其categoryID列出所有文章,通过下拉菜单,这是我使用的分页代码。
$page = isset($_GET['page']) ? (int)$_GET['page'] :1;
$perpage =10;
$start = ($page>1) ? ($page*$perpage)-$perpage :0;
$selects = $DB->prepare("
SELECT SQL_CALC_FOUND_ROWS
articles.*,
art_categories.*
FROM art_categories LEFT JOIN articles
ON articles.categoryID=art_categories.categoryID
WHERE art_categories.categoryID=:cat_id
ORDER BY publishDate DESC LIMIT {$start},10
");
$selects->bindParam(':cat_id', $_GET['categoryID'], PDO::PARAM_INT);
$selects->execute();
$selects= $selects->fetchALL(PDO::FETCH_ASSOC);
$total = $DB->query("SELECT FOUND_ROWS() as total")->fetch()['total'];
$pages = ceil($total / $perpage);
以下是我用于分页本身的代码
<ul class="pagination">
<?php for($i=1;$i<=$pages;$i++):?>
<li><a href="categories.php?categoryID=<?php echo $cate['categoryID']; ?>?page=<?php echo $i; ?>"><?php echo $i; ?></a></li>
<?php endfor;?>
</ul>
现在我已经阅读了很多关于这方面的文章,人们建议将[&#39;页面&#39;]作为$ _SESSION的一部分进行保存,但我没有运气。
session_start();
$page = isset($_SESSION['page']) && is_numeric($_SESSION['page']) ? $_SESSION['page'] : 1;
$_SESSION['page'] = $page;
$perpage =10;
$start = ($page>1) ? ($page*$perpage)-$perpage :0;
$selects = $DB->prepare("
SELECT SQL_CALC_FOUND_ROWS
articles.*,
art_categories.*
FROM art_categories LEFT JOIN articles
ON articles.categoryID=art_categories.categoryID
WHERE art_categories.categoryID=:cat_id
ORDER BY publishDate DESC LIMIT 10 OFFSET {$start}
");
$selects->bindParam(':cat_id', $_GET['categoryID'], PDO::PARAM_INT);
$selects->execute();
$selects= $selects->fetchALL(PDO::FETCH_ASSOC);
$total = $DB->query("SELECT FOUND_ROWS() as total")->fetch()['total'];
$pages = ceil($total / $perpage);
单击分页时,URL如下所示,但内容保持不变:
categories.php?categoryID=1?page=1
categories.php?categoryID=1?page=2
categories.php?categoryID=1?page=3
我不知道如何从这里前进任何帮助都很棒我还在学习PHP&amp; MySQL所以我根本不是高级程序员。
这个问题已经结束。