从分页中获取页面

时间:2015-04-13 19:55:46

标签: php pagination

我的分页效果很好,但是我希望从数据库中找到一条评论并获取显示评论的页面。

例如,在我的数据库中有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
}

1 个答案:

答案 0 :(得分:0)

您只需要计算页码:

$pageNb = $commentNumber / $perPage + 1;

其中$ commentNumber是评论的编号,我知道你已经知道了。那么,你只需写一下

<a href="comments.php?page=<?php echo $pageNb;?>">Comment</a>

我希望这会有所帮助


如果你需要知道什么是评论位置,事情会变得复杂一点。

一种解决方案是,在生成分页时,按顺序保存包含所有注释ID的数组。这样,您可以通过调用$ commentArray [$ commentId]找到评论位置。

另一种解决方案是将注释的位置保存在数据库表中。所以你要添加另一个列&#39; position&#39;到评论表,并填充它。这样,您就可以找到特定评论的位置。

两种解决方案都试图避免通过所有可以消除的评论进行第二次迭代。