php mysql数据库分页_PHP+mysql数据库简单分页实例-sql分页

/*1.传入页码*/

$page = $_GET['p'];

/*2.根据页码取出数据, php -> mysql*/

$host = "localhost";

$username = "root";

$password = "123456";

$db = "page";

$pageSize = 3;

$showPage = 5;

//连接数据库

$conn = mysqli_connect($host, $username, $password, $db);

if (!$conn) {

var_dump("连接失败");

}

//设置数据库的编码格式,防止乱码

mysqli_query($conn, "SET NAMES UTF8");

//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数

$sql = "SELECT * FROM test LIMIT " . ($page - 1) * $pageSize . ",{$pageSize}";

//把sql语句传送数据中

$result = mysqli_query($conn, $sql);

//处理数据

echo "

";

echo "

echo "

IDname";

while ($row = mysqli_fetch_assoc($result)) {

echo "

{$row['id']}{$row['name']}";

}

echo "

";

//释放结果,关闭连接

mysqli_free_result($result);

//获取数据总数

$total_sql = "SELECT COUNT(*) FROM test";

$total_result = mysqli_fetch_assoc(mysqli_query($conn, $total_sql));

$total = $total_result['COUNT(*)'];

$total_page = ceil($total / $pageSize);

mysqli_close($conn);

//3.显示数据 + 分页条

$page_banner = '

';

if ($page > 1) {

$page_banner .= "首页";

$page_banner .= "上一页";

}else{

$page_banner .= "首页";

$page_banner .= "上一页";

}

//初始化数据

$start = 1; //开始页面

$end = $total_page; //结束页面

$pageOffset = ($showPage - 1) / 2;

if ($total_page > $showPage) { //如果总页面大于显示的页面

if ($page > $pageOffset + 1) { //如果当前页面大于偏移量

$page_banner .= "...";

}

if ($page > $pageOffset) { //当前页大于偏移量

$start = $page - $pageOffset;

$end = $total_page > $page + $pageOffset ? $page + $pageOffset : $total_page;

} else {

$start = 1;

$end = $total_page > $showPage ? $showPage : $total_page;

}

if ($page + $pageOffset > $total_page) {

$start = $start - ($page + $pageOffset - $end);

}

}

for ($i = $start; $i <= $end; $i++) {

if ($page == $i){

$page_banner .="{$i}";

}else{

$page_banner .= "{$i}";

}

}

//尾部省略

if ($total_page > $showPage && $total_page > $page + $pageOffset){

$page_banner .= "...";

}

if ($page < $total_page) {

$page_banner .= "下一页";

$page_banner .= "尾页";

}else{

$page_banner .= "下一页";

$page_banner .= "尾页";

}

$page_banner .= "总页数{$total_page},";

$page_banner .= "

";

$page_banner .= "到第页";

$page_banner .= "";

$page_banner .= "

";

echo $page_banner;

?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值