所谓分页显示,也就是把数据库中的数据,一段一段显示出来
关键知识点:
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"] 显示当前页的除域名外后面的完整地址
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 ?> 页
效果: