我的分页效果很好,但是我希望从数据库中找到一条评论并获取显示评论的页面。
例如,在我的数据库中有100条评论,每页可以看到10条评论。这意味着我有10页的评论。如果我想找到第25号评论,它应该显示在第三页上,但仅限于评论号21到评论号30.然后将其显示为链接
<a href="comments.php?page=3">Comment</a>
。
这是我的分页代码:
$count = $con->query($sqlc)->num_rows;
if(isset($_GET["page"])){
$page = preg_replace("#[^0-9]#","",$_GET["page"]);
} else {
$page = 1;
}
$perPage = 10;
$lastPage = ceil($count/$perPage);
if($page < 1){
$page = 1;
} else if($page > $lastPage){
$page = $lastPage;
}
if($lastPage !=1){
if($page != $lastPage){
$next = $page + 1;
$pagination.='<a id="prevPage" href="?page='.$next.'">Older comments</a>';
}
if($page != 1){
$prev = $page - 1;
$pagination.='<a id="nextPage" href="?page='.$prev.'">Newer comments</a>';
}
}
$limit = "LIMIT ".($page-1) * $perPage . ", ".$perPage;
$sql = "SELECT * FROM comment ORDER BY id DESC ".$limit;
$query = $con->query($sql);
while($rowCom = $query->fetch_assoc()){
// Display Comments
}
答案 0 :(得分:0)
您只需要计算页码:
$pageNb = $commentNumber / $perPage + 1;
其中$ commentNumber是评论的编号,我知道你已经知道了。那么,你只需写一下
<a href="comments.php?page=<?php echo $pageNb;?>">Comment</a>
我希望这会有所帮助
如果你需要知道什么是评论位置,事情会变得复杂一点。
一种解决方案是,在生成分页时,按顺序保存包含所有注释ID的数组。这样,您可以通过调用$ commentArray [$ commentId]找到评论位置。
另一种解决方案是将注释的位置保存在数据库表中。所以你要添加另一个列&#39; position&#39;到评论表,并填充它。这样,您就可以找到特定评论的位置。
两种解决方案都试图避免通过所有可以消除的评论进行第二次迭代。