PHP分页颠倒

标签 php mysql pagination

我有标准的分页,效果很好。我想做的是把它倒过来。所以导航将从最后开始。 5 | 4 | 3 | 2 | 1.我每页的限制是 15,所以我希望第 1 页包含 15 个元素,最后一页将包含最新元素。我知道这是一种非常不寻常的方法,但这是我想做的。但我需要有人让我走上正确的道路并提供一点帮助。谢谢。

我的功能代码在这里:(缩短)

<?

$adjacents = 4;

$result = $mysqli->query("SELECT * FROM table");
$total_pages = $result->num_rows;
$result->close();

    /* Setup vars for query. */
    $targetpage = "articles";
    $limit = 15;                                
    $page = $_GET['page'];
    if($page) 
        $start = ($page - 1) * $limit;  
    else
        $start = 0;         

    /* Get data. */
    $sql = $mysqli->query("SELECT * FROM table ORDER BY id DESC LIMIT $start, $limit");


    /* Setup page vars for display. */
    if ($page == 0) $page = 1;                  //if no page var is given, default to 1.
    $prev = $page - 1;                          //previous page is page - 1
    $next = $page + 1;                          //next page is page + 1
    $lastpage = ceil($total_pages/$limit);      //lastpage is = total pages / items per page, rounded up.
    $lpm1 = $lastpage - 1;                      //last page minus 1


while($row = $sql->fetch_array())  {

$name = $row['name'];
$ource = $row['source'];

}

?>

<?=$pagination?>
<? $sql->close(); ?>

最佳答案

嗯...第一个提示 - 不要使用简短的 php 开头标签。它们已被弃用,可能会给您在某些服务器上带来问题。使用 <?php 启动 php 代码.

其次,在您的代码中,您混合了显示寻呼机和页面内容的部分。该 mySql 查询用于获取当前页面的行。但是对于寻呼机,您将需要类似的查询,它将只返回所有行的计数(因此没有限制部分)。

 $sql = $mysqli->query("SELECT COUNT(*) FROM table");

类似的东西......

当您获得该计数时(假设您总共有 45 行)。您必须计算总页数。这就像:

$pages_number = ceil ($rows_count / $limit );

在我们的例子中,我们将有 3(页)。

然后,您需要一些 for 循环,从页数到 1,例如:

for ($i = $pages_number; $i > 1; $i--){
 // write out current link
}

这个循环会给你数字 3,2,1...所以用它们创建链接并打印出来。

关于PHP分页颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32416484/

相关文章:

asp.net-mvc-3 - TableSorter 记录过多

php - 为什么这段代码对于某些特定输入显示奇怪的值?

php - PHP 中的相同字符串不匹配

mysql - MySQL 中何时使用单引号、双引号和反引号

java - 如何检查分页按钮是否启用或禁用

php - 如果有 5 行或更多行,请添加另一页

php - 从 MYSQL 数据列中提取 URL 有效或无效

php - 使用 MySql 保持两个远距离程序同步

mysql - 将句点保存在首字母缩略词中还是不保存在数据库中?

mysql - SQL 分组列