PHP+MySql 分页原理

所谓分页显示,也就是把数据库中的数据,一段一段显示出来
关键知识点:
SQL语句中的limit用法:  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 ?> 页

效果:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值