博客列表 >分面显示一张商品信息表20180427

分面显示一张商品信息表20180427

jobing的博客
jobing的博客原创
2018年05月20日 18:25:37994浏览

以下代码将对分页函数进行封装,并使用封装的函数,显示一张商品信息表单,与大家分享:

封装函数的代码:

实例

<?php 

if(!function_exists('func_page'))
{
	function func_page($db,$table,$page=1,$num=5)
	{
		$offset = ($page-1)*$num;
		$sql = "SELECT * FROM $table LIMIT $offset,$num;";
		$res = mysqli_query($db,$sql);
		$rows = mysqli_fetch_all($res,MYSQLI_ASSOC);

		$number = mysqli_query($db,"SELECT COUNT(*) FROM $table");
		list($total) = mysqli_fetch_row($number);
		$pages = ceil($total / $num);

		return['rows'=>$rows,'pages'=>$pages];
	}
}

运行实例 »

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

实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>商品信息表</title>
	<style type="text/css">
		table,th,td{
			border:1px solid black;
		}
		table{
			border-collapse: collapse;
			width:70%;
			margin: 30px auto;
			text-align:center;
		}
		table th{
			background-color: lightskyblue;
		}
		h3{
			text-align: center;
		}
		h3 a{
			text-decoration:none;
			margin-left: 10px;
			border:1px solid black;

			display: inline-block;
			height: 30px;
			min-width:30px;
			padding:0 10px;
			background-color: lightskyblue;
		}
		h3 a:hover, .active{
			background-color: skyblue;
			color:white;
		}
		form{
			display: inline;
		}
	</style>
</head>
<body>
 
<?php  

require 'lib/func_page.php';

$db = mysqli_connect('127.0.0.1','root','root','php');
$num = 4;
$page = isset($_GET['p']) ? $_GET['p'] : 1;
$table = 'goods';

$data = func_page($db,$table,$page,$num);
$rows = $data['rows'];
$pages = $data['pages'];

$page = ($page == 0) ? 1 : $page;
$page = ($page > $pages) ? $pages : $page;


?>



	<table>
		<caption><h2>商品信息表</h2></caption>
		<tr>
			<th>ID</th>
			<th>商品名称</th>
			<th>商品条码</th>
			<th>商品类型</th>
			<th>商品价格</th>
		</tr>

		<?php foreach($rows as $row): ?>
		<tr>
			<!-- 注意下方输出时不要将$row写成$rows了 -->
			<td><?php echo $row['goods_id']; ?></td>
            <td><?php echo $row['goods_name']; ?></td>
            <td><?php echo $row['goods_number']; ?></td>
            <td><?php echo $row['goods_type']; ?></td>
            <td><?php echo $row['goods_price']; ?></td>
		</tr>
		<?php endforeach; ?>

		 
		
	</table>


<h3>
	<?php if($page !=1): ?>
	<a href="http://www.jobing.com/20180427/demo7.php?p=1">首页</a>
	<a href="http://www.jobing.com/20180427/demo7.php?p=<?php echo ($page-1);?>">上一页</a>
	<?php endif; ?>

	<?php for($i=1;$i<=$pages;$i++): ?>
		<a class="<?php if($page==$i){echo 'active';}?>" href="http://www.jobing.com/20180427/demo7.php?p=<?php echo $i;?>"><?php echo $i;?></a>
	<?php endfor; ?>

	<?php if($page !=$pages): ?>
	<a href="http://www.jobing.com/20180427/demo7.php?p=<?php echo ($page+1);?>">下一页</a>
	<a href="http://www.jobing.com/20180427/demo7.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($page==$i) echo 'selected'; ?>><?php echo $i ?></option>
			<?php endfor; ?>
		</select>
		页
		<button>跳转</button>
	</form>
</h3>
</body>
</html>

运行实例 »

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

效果图展示:

1.png2.png3.png4.png

总结:

分页函数的创建:

获取总页数分2步:1.获取总记录数;2.再除以每次的显示数量,结果向上取整。

函数最终返回的是当前分页数据与总页数。

创建完成后连接数据库,导入分页函数库调用分页函数,获取到分页数据和总页数;对当前的页数以及上一页和下一页等进行处理,当前页数不能大于总页数不能小于0;之后对页面上的现实进行处理;当前是第一页的时候,上一页和首页链接不显示;当前已经是最后一页的时候,下一页和最后一页也应该不显示;并高亮显示当前页码;还有页面的快速跳转通过循环输出全部页码,并锁定当前页面。

注:

自己中间遇到的一些问题:

在遍历输出商品信息时,前面是<?php foreach($rows as $row): ?>,后面将$row写成$rows了,需注意,正确的为<?php echo $row['goods_id']; ?>

在简化商品代码时,上一页和下一页p=的是<?php echo ($page-1);?>和<?php echo ($page+1);?>,而不是$page




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