分页及两表的关联操作
一、分页:
需求:
- 从学生表中取前10条的数据 第一页数据 1
select * from student limit 0,10 - 从学生表中前第11条到第20条的数据 10条第二页数据 2
select * from student limit 10,10 - 从学生表中取第21条到第30条的数据 10条 第三页数据3
select * from student limit 20,10
分页的原理
limit offset,length;
从指定位置(offset)开始,获取对应长度(length)条记录(就是每页显示的数据条数)
offset: (当前的页码-1)*length
-
分页必须知道的条件:当前的页码,每页显示的数据长度,总共要分多少页
当前的页码:通过a链接传递
image.png
接收页码:
image.png
每页显示的长度:自定义
image.png
总页数:总记录数/每页显示的长度
image.png
上一页
image.png
下一页
image.png
查询语句


二、百度分页效果
数据:跟普通分页一样

页面渲染
要求每个页面显示10个页码,选中的页码无链接,没选中的有链接
第一步:

第二步: 找规律

第三步:排除特殊情况

三、封装分页显示类
- 新建一个文件common.php,里面定义一个函数page()
<?php
/**
* @param $page 当前页码
* @param $total_pages 总页数
* @param $url 跳转的URL地址
*/
function page($page,$total_pages,$url){
//找出循环的起始位置和结束位置
$start=$page-5;
$end=$page+4;
//末尾
if($page>=$total_pages-4){
$end=$total_pages;
$start=$total_pages-9;
}
//开头
if($page<=6){
$start=1;
$end=10;
}
//当总页数小于10页时
if($total_pages<=10){
$start=1;
$end=$total_pages;
}
for($i=$start;$i<=$end;$i++){
if($i==$page){
echo "<span>$i</span>";
}else{
echo "<a href='$url?page=$i'>$i</a>";
}
}
}
-
在使用的地方引入分页类
image.png
四、两表的关联操作(未完待续。。。)
1、理清表之间的关联关系
建表的多对一的关系
2、各自做各自的操作
3、两表的关联操作
网友评论