当前位置: 首页 > 面试题库 >

简单的PHP分页脚本

商运锋
2023-03-14
问题内容

关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。

想改善这个问题吗? 更新问题,使其成为Stack Overflow
的主题。

5年前关闭。

我有来自数据库的数据行,我想有一个带有简单分页的表,最简单的方法是什么?
如果有人可以提供,我会很高兴。


问题答案:

这是HTML和代码的混合,但是非常基础,易于理解,并且解耦起来也很简单,可以满足您的需求。

try {

    // Find out how many items are in the table
    $total = $dbh->query('
        SELECT
            COUNT(*)
        FROM
            table
    ')->fetchColumn();

    // How many items to list per page
    $limit = 20;

    // How many pages will there be
    $pages = ceil($total / $limit);

    // What page are we currently on?
    $page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array(
        'options' => array(
            'default'   => 1,
            'min_range' => 1,
        ),
    )));

    // Calculate the offset for the query
    $offset = ($page - 1)  * $limit;

    // Some information to display to the user
    $start = $offset + 1;
    $end = min(($offset + $limit), $total);

    // The "back" link
    $prevlink = ($page > 1) ? '<a href="?page=1" title="First page">&laquo;</a> <a href="?page=' . ($page - 1) . '" title="Previous page">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>';

    // The "forward" link
    $nextlink = ($page < $pages) ? '<a href="?page=' . ($page + 1) . '" title="Next page">&rsaquo;</a> <a href="?page=' . $pages . '" title="Last page">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</span>';

    // Display the paging information
    echo '<div id="paging"><p>', $prevlink, ' Page ', $page, ' of ', $pages, ' pages, displaying ', $start, '-', $end, ' of ', $total, ' results ', $nextlink, ' </p></div>';

    // Prepare the paged query
    $stmt = $dbh->prepare('
        SELECT
            *
        FROM
            table
        ORDER BY
            name
        LIMIT
            :limit
        OFFSET
            :offset
    ');

    // Bind the query params
    $stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
    $stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
    $stmt->execute();

    // Do we have any results?
    if ($stmt->rowCount() > 0) {
        // Define how we want to fetch the results
        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $iterator = new IteratorIterator($stmt);

        // Display the results
        foreach ($iterator as $row) {
            echo '<p>', $row['name'], '</p>';
        }

    } else {
        echo '<p>No results could be displayed.</p>';
    }

} catch (Exception $e) {
    echo '<p>', $e->getMessage(), '</p>';
}


 类似资料:
  • 本文向大家介绍PHP分页初探 一个最简单的PHP分页代码的简单实现,包括了PHP分页初探 一个最简单的PHP分页代码的简单实现的使用技巧和注意事项,需要的朋友参考一下 PHP分页代码在各种程序开发中都是必须要用到的,在网站开发中更是必选的一项。 要想写出分页代码,首先你要理解SQL查询语句:select * from goods limit 2,7。PHP分页代码核心就是围绕这条语句展开的,SQL

  • 本文向大家介绍php简单实现数组分页的方法,包括了php简单实现数组分页的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单实现数组分页的方法。分享给大家供大家参考,具体如下: 首先学东西  要多看手册 用php自带的函数  可以解决一些难解的问题 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php正则表达式用法总结》、《PHP

  • 问题内容: 我正在使用下面的循环+ jQuery在下一组页面中加载,并且在第一次单击时有效,但是当加载下一页并单击“较新的帖子”时,它将重新加载整个页面。有任何想法吗? 问题答案: 您正在使用jQuery的方法插入内容,这是的快捷方式,当然可以动态地插入内容。 动态内容需要将事件委派给非动态父对象,而jQuery可以轻松实现

  • 问题内容: 剖析PHP脚本的最简单方法是什么? 我喜欢在上面显示一些内容,这些内容可以显示所有函数调用的转储以及它们花费了多长时间,但我也可以在特定函数周围添加一些内容。 我尝试使用microtime函数进行实验: 但这有时给我负面的结果。另外,在我的代码中撒满代码也很麻烦。 问题答案: 所述PECL APD扩展的使用如下: 之后,使用解析生成的文件。 输出示例: 警告:APD的最新版本为2004

  • 本文向大家介绍PHP封装的分页类与简单用法示例,包括了PHP封装的分页类与简单用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP封装的分页类与简单用法。分享给大家供大家参考,具体如下: 分页类的封装如下: page.php 一个调用分页类的例子 userlist.php 运行结果: 数据库的封装之前写过,这里不在赘述: PHP封装mysqli基于面向对象的mysql数据库操作类

  • 本文向大家介绍简单实现jsp分页,包括了简单实现jsp分页的使用技巧和注意事项,需要的朋友参考一下 数据分页,在开发中必不可少,由于数据量太大,不得不进行处理。但是对于分页,又有很多种方式,比如使用sql语句的limit,或者使用jquery的插件。但是底层的逻辑,都是需要的。 在这里贴出bean对象的代码,以及一个辅助类。我做的这个项目是一个个人博客,算是个人网站吧。 (只贴部分底层逻辑代码)