利用php将数据库中的数据进行分页显示,有两种方法,但是无论第一种方法。,还是第二种方法都需要判断是否传入参数,和参数默认值问题
<?php
if(!isset($_GET['page'])){//如果没有传入参数page
$page=1;//这里需要考虑地址栏是否传入参数page
}
?>
此时判断完成之后,第一种方法,使用sql语句进行分页
关于sql语句limit,第一个参数为起始值(不输出起始值的数据),第二个参数为输出数据的个数
<?php
$con=mysqli_connect('localhost','root','');//连接数据库
mysqli_query($con,'use test');
$page=isset($_GET['page'])?$_GET['page']:1;//从页面中获取page,有时在第一页时没有page参数需要写入默认值
function getall($con,$tablename){//获取返回的数据条数
$sql='select * from '.$tablename;
$result=mysqli_query($con,$sql);
return mysqli_num_rows($result);
}
$perpage=2;//每页数据两条
$allnum=getall($con,'goods');
$totalpage=ceil($allnum/$perpage);//计算出页数总数,如果最后一页没有够每页显示数据的条数,此时也需要将最后不完整的一页输出
if($page>$totalpage){//此时如果在地址栏中被改动到一个更大的数值,
$page=$totalpage;//将这个更大的值更改为最大页数
}
$sql='select * from goods limit '.(($page-1)*$perpage).','.$perpage;
$result=mysqli_query($con,$sql);
foreach ($result as $key => $value) {
print_r($value['goods_name']);
}
?>
第二种方法分页功能,原理就是将数据库的数据全部取出放入数组根据page变化
<?php
$con=mysqli_connect('localhost','root','');//连接数据库
mysqli_query($con,'use test');
$page=isset($_GET['page'])?$_GET['page']:1;//从页面中获取page,有时在第一页时没有page参数需要写入默认值
$list=[];
function getall($con,$tablename){//获取返回的数据条数
$i=1;
$sql='select * from '.$tablename;
$result=mysqli_query($con,$sql);
foreach ($result as $value) {
$list[$i]=$value;
$i=$i+1;
}
return mysqli_num_rows($result);
}
function getallmesg($con,$tablename){//获取返回所有数据
$i=1;
$sql='select * from '.$tablename;
$result=mysqli_query($con,$sql);
foreach ($result as $value) {
$list[$i]=$value;//注意,此时数组需要从1开始,
$i=$i+1;
}
return $list;
}
$list=getallmesg($con,'goods');
$perpage=2;//每页数据两条
$allnum=getall($con,'goods');
$totalpage=ceil($allnum/$perpage);
if($page>$totalpage){//此时如果在地址栏中被改动到一个更大的数值,
$page=$totalpage;//将这个更大的值更改为最大页数
}
$message[]=$list[(($page*2)-1)];
$message[]=$list[($page*2)];
print_r($message);
?>
第二种方法详细的说明
根据数组制作分页
此时根据页数的变化将数据输出,两种方法。
如有错误,敬请指正