Blogger Information
Blog 59
fans 0
comment 1
visits 48001
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
分页显示——会员信息查询表——2018年4月27日作业
白猫警长的博客
Original
742 people have browsed it

封装函数库 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>

运行实例 »

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


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post