如何实现分页功能

前沿

这篇文章仅适用于新手
使用语言为PHP
正文


一、基础知识

(一)通过get方式传递参数

与提交表单不同,分页一般都是采用get的方式传递参数,那么get方式是怎么传递参数的呢?大家可以看一下百度


Paste_Image.png

其中"?"后面的指的是参数,那么它传递了ie和wd这两个参数,它们的值分别是utf-8和jianshu。

(二)通过LIMIT关键字获取对应数据

我们在通过SELECT语句获得数据的时候,可以使用SELECT语句限制获取的数据范围,比如说下面的

SELECT * FROM Info LIMIT 5,5

它的意思是从第六条数据开始(从第一条开始获取写LIMIT 0,5),连续获取五条数据,这样就可以动态的控制获取的信息的范围、

二、分页的理论实现

用户在访问需要分页的网页的时候,由用户传递一个要访问的页码,然后我们获取到页码之后,通过sql语句获取对应页码所需要的数据,当用户点击下一页、上一页或者直接的页码的时候,我们就自动的将当前的页码进行改变,然后重新跳转到当前页。

三、代码实现

我们不妨设计一个参数叫做page,这样的话,访问我们的页面就要带上这个参数才行。为了方便观察,每一条数据都是一个字母,从a开始递增。
数据库字段:

Database : Page
--------------------------
|     id     |   info    |
--------------------------

代码部分

Error Message : ' . mysqli_connect_error();
}
$result = mysqli_query($mysqli, "SELECT count(id) FROM Page"); // 计算数据库中数据量
$data = mysqli_fetch_array($result, MYSQLI_NUM);
$max_page = (int) ($data[0] / PAGE_DATA + ($data[0] % PAGE_DATA ? 1 : 0)); // 计算最大页数
if (isset($_GET['page'])) { // 判断参数是否存在
    $page = $_GET['page'];
    if ($page < 1 || $page > $max_page) { // 判断数据大小是否合法
        $page = 1; // 不合法的情况下默认为1
    }
} else {
    $page = 1; // 参数不存在也默认是1
}
$data_start = ($page - 1) * PAGE_DATA; //开始获取的位置
$result = mysqli_query($mysqli, 
        "SELECT info FROM Page Limit $data_start," . PAGE_DATA); // 获取对应数据
$data = mysqli_fetch_all($result, MYSQLI_NUM);
foreach ($data as $value) {
    echo $value[0] . '
'; } if ($page > 1) { // 页码大于1 echo '上一页'; } if ($page < $max_page) { // 页码小于最大的页码 echo '下一页'; }

你可能感兴趣的:(如何实现分页功能)