【问题标题】:PHP Paging in Mysql_QueryMysql_Query 中的 PHP 分页
【发布时间】:2012-07-20 00:55:02
【问题描述】:

所以基本上,这就是我的分页查询目前的样子:

    $limit = mysql_escape_string($_GET['pagenumber']);
    if (empty($limit)){
    $limit = "1";
    }

    $page = $limit * 10;
    $flim1 = $page / 10;
    $flim = $page - 10;

在我的查询结束时,我有这个:

    ... LIMIT $flim, $page

如果页码是 1 和 10, 20 如果页码是 2 应该是 1, 10。它在第一页上完美地工作,但是当我到达第二页时,有 20 个结果,虽然当我回应 $flim 和 $page,它们分别是 10 和 20。我不明白为什么!

我听说过一些用于分页的双重查询。如果您知道一种类似于此的简单方法,请发布链接。我的方法行得通吗?

【问题讨论】:

    标签: php mysql paging


    【解决方案1】:

    请看LIMIT的规范有LIMIT offset,count 所以在你的情况下,它会是LIMIT $flim,10

    完整代码:

    $page = mysql_escape_string($_GET['pagenumber']);
    if (empty($limit)){
    $page = "1";
    }
    $items_per_page=10;
    $offset = ($page-1)*$_items_per_page;
    

    然后LIMIT $offset,$items_per_page

    此外,您还需要计算所有项目的数量才能不超过最大页面

    【讨论】:

    • 另外,如果您执行 1,10 然后 10,20(或 10,10),您将显示项目 #10 两次
    • 好吧,他在最初的问题中犯了错误。只是需要指出来。
    • 由于某种原因,它在第一页上显示 0 - 10,然后是 10-10,然后是 20-10?
    • 由于某种原因,它在第一页上显示 0 - 10,然后是 10-10,然后是 20-10? edit 好的,我现在看到了,偏移量,计数。所以我今天也学到了一些新东西:)!非常感谢,大力支持!
    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    相关资源
    最近更新 更多