前沿
这篇文章仅适用于新手
使用语言为PHP
正文
一、基础知识
(一)通过get方式传递参数
与提交表单不同,分页一般都是采用get的方式传递参数,那么get方式是怎么传递参数的呢?大家可以看一下百度
其中"?"后面的指的是参数,那么它传递了ie和wd这两个参数,它们的值分别是utf-8和jianshu。
(二)通过LIMIT关键字获取对应数据
我们在通过SELECT语句获得数据的时候,可以使用SELECT语句限制获取的数据范围,比如说下面的
SELECT * FROM Info LIMIT 5,5
它的意思是从第六条数据开始(从第一条开始获取写LIMIT 0,5),连续获取五条数据,这样就可以动态的控制获取的信息的范围、
二、分页的理论实现
用户在访问需要分页的网页的时候,由用户传递一个要访问的页码,然后我们获取到页码之后,通过sql语句获取对应页码所需要的数据,当用户点击下一页、上一页或者直接的页码的时候,我们就自动的将当前的页码进行改变,然后重新跳转到当前页。
三、代码实现
我们不妨设计一个参数叫做page,这样的话,访问我们的页面就要带上这个参数才行。为了方便观察,每一条数据都是一个字母,从a开始递增。
数据库字段:
Database : Page
--------------------------
| id | info |
--------------------------
代码部分
<?php
// page.php
<?php
define('PAGE_DATA', 4); // 定义每行五条数据
$mysqli = mysqli_connect('localhost', 'root', 'al3682733', 'Train');
if (mysqli_connect_error()) { // 连接错误
echo 'Connect Error.<br/>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] . '<br/>';
}
if ($page > 1) { // 页码大于1
echo '<a href=page.php?page=' . ($page - 1) . '>上一页</a>';
}
if ($page < $max_page) { // 页码小于最大的页码
echo '<a href=page.php?page=' . ($page + 1) . '>下一页</a>';
}