所谓分页显示,也就是把数据库中的数据,一段一段显示出来


关键知识点:

SELECT * FROM table …… limit   开始位置 , 操作条数  


例如:



第11至20条记录:select * from table limit 10,10 



确定范围: Select * from table limit ($Page- 1) * $PageSize, $PageSize 

建表:



CREATE TABLE `character` 
( `name` varchar(15) NOT NULL,
`age` int(3) NOT NULL,
`sex` varchar(5) NOT NULL )
ENGINE=InnoDB DEFAULT CHARSET=gb2312;


SQL文件导入数据:


SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `db_study`
--

-- --------------------------------------------------------

--
-- 表的结构 `character`
--

CREATE TABLE IF NOT EXISTS `character` (
`name` varchar(15) NOT NULL,
`age` int(3) NOT NULL,
`sex` varchar(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

--
-- 转存表中的数据 `character`
--



INSERT INTO `character` (`name`, `age`, `sex`) VALUES
('Elena',18,'女'),
('Demon', 19, '男'),
('Jane',21,'女'),
('Stephen',20,'男'),
('Caroline',21,'女'),
('Jordan',20,'男'),
('Kathrine',23,'女'),
('James',20,'男'),
('Gabiella',22,'女'),
('Kobe',20,'男'),
('Bonnie',23,'女');




注意编码:





CHARSET=gb2312



mysqli_query($link,"set names 'UTF8'");



PHP文件:以UTF-8格式编码





parse_url() 是将URL解析成有固定键值的数组的函数



$_server[] 预定义服务器函数



$_SERVER["REQUEST_URI"] 显示当前页的除域名外后面的完整地址



PHP+MySql 分页原理_php


conn.php:


<?php
$link=mysqli_connect("localhost:3306","root","****","db_study");
if(!$link){
die("cound not connect");
}
mysqli_query($link,"set names 'UTF8'");
?>


page.php:


<?php
include("conn.php");
$url=$_SERVER["REQUEST_URI"]; //获取URI
$url=parse_url($url); // 变成数组
$url=$url['path'];

$sql="SELECT * FROM `character`";
$result=mysqli_query($link,$sql);
$num=mysqli_num_rows($result); // 获取记录条数

$size=3;
$page=0;
$pageval=0;
if(!empty($_GET['page'])){
$pageval=$_GET['page']; //获取当前页面
//if($pageval<1) $pageval=1; // 后面有翻页处理,这里不用写
$page=($pageval-1)*$size;
}

echo "$num 条";
if($pageval-1>=1) echo " <a href=$url?page=".($pageval-1).">上一页</a>";
$pagelimit=ceil($num/$size);
if($pageval+1<=$pagelimit) echo " <a href=$url?page=".($pageval+1).">下一页</a>";

$sql = "SELECT * FROM `character` limit $page, $size";
@$result=mysqli_query($link,$sql) or die (mysql_error());
while($row=mysqli_fetch_array($result)){
?>
<br>
name: <?php echo $row['name'] ?> | age: <?php echo $row['age']?> |sex: <?php echo $row['sex']?>
<?php
}
?>
<br>
<?php echo $pageval ?>


效果:


PHP+MySql 分页原理_mysql_02


PHP+MySql 分页原理_分页_03


PHP+MySql 分页原理_sql_04


PHP+MySql 分页原理_数据库_05