博客列表 >分页显示——会员信息查询表——2018年4月27日作业

分页显示——会员信息查询表——2018年4月27日作业

白猫警长的博客
白猫警长的博客原创
2018年05月02日 11:44:27745浏览

封装函数库 func_page.php

<?php 
/**
 * 分页函数封装
 */
if(!function_exists('func_page'))
{
	function func_page($db,$table,$page=1,$sum=5) {
		$offset = ($page-1) * $sum;						//4.$page当前页数-1
        $sql = "SELECT * FROM $table LIMIT {$offset}, {$sum};";	//1.先查询数据库所有数据,LIMIT 参数1:索引位置开始,参数2:每页显示数量
        $res = mysqli_query($db,$sql);						//2.使用Mysqli获取结果集
        $rows = mysqli_fetch_all($res,MYSQLI_ASSOC);		//3.将数组进行解析
        // echo '<pre>'.print_r($rows,true).'</pre>';
        // 
        // 上一页与下一页
        // 获取总页数分2步:1.获取总记录数,2.再除以每次的显示数量,结果向上取整
        $number = mysqli_query($db,"SELECT count(*) FROM {$table}");
        //list() 函数用于在一次操作中给一组变量赋值。
        list($total) = mysqli_fetch_row($number);	//获取总记录数,并赋值给变量$total
        $pages = ceil($total / $sum);	

        //返回当前分页数据与总页数
        return ['rows'=>$rows, 'pages'=>$pages];
	}
}
运行实例 »
点击 "运行实例" 按钮查看在线实例


实例 page.php

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>分页查询</title>
	<style>
		table,th,td { border:1px solid; font-size: 13px; text-align: center; }
		table{ width:1000px; margin: auto; border-collapse: collapse; }
		th,td{padding: 5px 5px;}
		th{
			background-color: lightblue;
		}
		div {
			width: 1000px; margin: auto; text-align: center; margin-top: 20px;
		}
		div a{
			text-decoration: none;padding: 5px 10px; border:1px solid #999; display: inline-block;
		}
		div a:hover,.active{
			background-color: red; color: #fff;
		}
		form {
			display: inline;
		}
	</style>
</head>
<body>
 <?php
// 导入分布函数库
require 'lib/func_page.php';

//连接数据库获取到全部的记录
$db = mysqli_connect('127.0.0.1','root','root','php');
$page = isset($_GET['p']) ? $_GET['p'] : 1;		//获取当前页数,isset()进行判断,有就把$_GET['p']值拿到,如果没有就默认返回第1页
$sum = 3;			//设置显示数量
$table = 'mana';	

//调用分页函数
$data = func_page($db,$table,$page,$sum);
$rows = $data['rows'];  //当前分页数据
$pages = $data['pages'];  //总页数

 /********要添加以下代码**********/
//如果当前变成为了0,则强制修改为1,否则就是当前页数
$page = ($page == 0) ? 1 : $page;
//如果大于总页数,则强制修改为总页数,否则就是当前页数
$page = ($page > $pages) ? $pages : $page;		//获取总页数,总记录数除以每页显示的数量后,得到总页数 $pages
?>

	<table>
		<caption><h2>用户管理</h2></caption>
		<tr>
			<th>排序</th>
			<th>用户名</th>
			<th>用户等级</th>
			<th>QQ号码</th>
			<th>存款余额</th>
			<th>注册时间</th>
			<th colspan="3">操作</th>
		</tr>
		<?php foreach ($rows as $row): ?>
		<tr>
			<td><?php echo $row['mana_id']; ?></td>
			<td><?php echo $row['name']; ?></td>
			<td><?php echo $row['class']; ?></td>
			<td><?php echo $row['faqqq']; ?></td>
			<td><?php echo $row['sum']; ?></td>
			<td><?php echo $row['join_date']; ?></td>	
			<td><?php echo $row['operation']; ?></td>
		</tr>
		<?php endforeach; ?>
	</table>
	<div>
			<?php if($page!=1): //判断当前页数不等于1时,首页和上一页自动隐藏,反之显示?>	
			<a href="http://www.php.com/0427_page/page.php?p=1">首页</a>
			<a href="http://www.php.com/0427_page/page.php?p=<?php echo $page-1; ?>">上一页</a>
			<?php endif; ?>

			<!-- 中间页码 -->
			<!-- php代码输出class类实现高亮显示  -->
			<?php for ($i=1; $i<=$pages; $i++): ?>
			<a href="http://www.php.com/0427_page/page.php?p=<?php echo $i ?>" class="<?php if($_GET['p']==$i){echo 'active';}?>"><?php echo $i ?></a>
			<?php endfor; ?>

			<?php if($page != $pages): //判断当前页数不等于总页数时,下一页和尾页自动隐藏,反之显示?>
			<a href="http://www.php.com/0427_page/page.php?p=<?php echo $page+1; ?>">下一页</a>
			<a href="http://www.php.com/0427_page/page.php?p=<?php echo $pages; ?>">尾页</a>
			<?php endif; ?>

			<!-- 用表单实现下拉框直接跳转到目标页面 -->
			<form action="" method="get">
				第
			<select name="p" id="">
				<?php for ($i=1; $i<=$pages ; $i++): ?>
				<!-- 循环输出全部页码,并锁定当前页-->
				<option value="<?php echo $i; ?>" <?php if($_GET['p']==$i){echo 'selected';}; ?>><?php echo $i; ?></option>
				<?php endfor; ?>
			</select>
				页
			<button>跳转</button>
			</form>

	</div>

		
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议