PHP实现分页中带有省略缩略功能的代码

学习笔记 马富天 2018-04-12 15:51:56 170 0

【摘要】上次我的服务器被入侵了,导致我之前写过的许多文章都找不回来了,目前的文章都是之前的备份。今天的文章讲的是有关PHP分页的,很多时候数据库中的数据往往是上万条记录,而这个时候如果一次性统统取出来,如果不对分页进行处理,则会有特别多的页码,显得格外不好看。

首先看一下效果图:

请输入图片名称

接着直接上完整代码:

  1. <style>
  2. 	*{font-size:12px;}
  3. 	a{
  4. 		border:1px solid #AACCEE;
  5. 		min-width:20px;
  6. 		height:20px;
  7. 		margin:5px;
  8. 		display:inline-block;
  9. 		float:left;
  10. 		text-decoration:none;
  11. 		font-size:12px;
  12. 		text-align:center;
  13. 		line-height:20px;
  14. 	}
  15. 	.cur_page{
  16. 		color:#DB450B;
  17. 		font-weight:800;
  18. 	}
  19. </style>
  20. <?php	
  21. 	//	需要修改的内容,改成自己的相应信息:
  22. 	//	$username,$passwrod,$database,$table_name
  23. 	//	首先,设置页面字符集
  24. 	header("Content-Type:text/html;charset=utf-8");
  25. 	//	设置页面最大执行时间
  26. 	ini_set("max_execution_time",86400);
  27. 	//	连接数据库
  28. 	$host = '127.0.0.1';
  29. 	$username = 'root';
  30. 	$password = '123456';
  31. 	$database = 'test';
  32. 	$link = mysqli_connect($host,$username,$password);
  33. 	if(!$link)
  34. 	{
  35. 		die('数据库连接失败');
  36. 	}
  37. 	$db = mysqli_select_db($link,$database);
  38. 	if(!$db)
  39. 	{
  40. 		die('数据库选择失败');
  41. 	}
  42. 	//	设置连接字符集为utf-8
  43. 	$sql = 'set names utf8';
  44. 	$query = mysqli_query($link,$sql);
  45. 	if(!$query)
  46. 	{
  47. 		die('执行SQL查询语句失败');
  48. 	}
  49. 	//	查询表中的数据
  50. 	$table_name = "item";
  51. 	$pagesize = 6;	//	每页显示
  52. 	$bothNum = 3;	//	当前页左右各显示页码个数
  53. 	if(isset($_GET['page']) && $_GET['page'] != '')
  54. 	{
  55. 		$page = $_GET['page'];
  56. 	}else
  57. 	{
  58. 		$page = 1;
  59. 	}
  60. 	$sql = "SELECT id FROM ".$table_name;
  61. 	$query = mysqli_query($link,$sql);
  62. 	if(!$query)
  63. 	{
  64. 		die('执行查询失败');
  65. 	}
  66. 	$tot_num = mysqli_num_rows($query);	//	获取总数
  67. 	$tot_pages = ceil($tot_num / $pagesize);	//	总页数
  68. 	$parameters = "a=1";	//	参数列表
  69. 	//	下一页
  70. 	if($page >= $tot_pages)
  71. 	{
  72. 		$next_page = $tot_pages;
  73. 	}else
  74. 	{
  75. 		$next_page = $page + 1;
  76. 	}
  77. 	//	上一页
  78. 	if($page <= 1)
  79. 	{
  80. 		$pre_page = 1;
  81. 	}else
  82. 	{
  83. 		$pre_page = $page - 1;
  84. 	}
  85. 	//	分页查询
  86. 	$sql = "SELECT id,kwords FROM ".$table_name ." limit ".($page - 1) * $pagesize.",".$pagesize;
  87. 	$query = mysqli_query($link,$sql);
  88. 	if(!$query)
  89. 	{
  90. 		die('执行查询失败');
  91. 	}
  92. 	//	从结果集放入到数组中
  93. 	$tot = mysqli_num_rows($query);	//	获取总数
  94. 	while($row = mysqli_fetch_assoc($query))
  95. 	{
  96. 		$data[] = $row;
  97. 	}
  98. 	//	输出数据
  99. 	foreach($data as $k => $v)
  100. 	{
  101. 		echo $v['id'].'-'.$v['kwords'];
  102. 		echo '<br />';
  103. 	}
  104. ?>
  105. 	<div>
  106. 	    <a href="?<?php echo $parameters;?>&page=1">首页</a>  
  107. 	    <a href="?<?php echo $parameters;?>&page=<?php echo $pre_page;?>">上一页</a>
  108. 		<?php 
  109. 			//	显示第一页
  110. 			if($page > 1 && $page - $bothNum > 1)
  111. 			{
  112. 				echo '<a href="?'.$parameters.'&page=1">1</a>';
  113. 			}			
  114. 			//	显示省略号
  115. 			if($page - $bothNum > 2)
  116. 			{
  117. 				echo '<a>…</a>';
  118. 			}
  119. 			//	当前页的左边
  120. 			for($i = $bothNum;$i >= 1;$i--)
  121. 			{
  122. 				if(($page - $i) < 1 ) 
  123. 				{ 
  124. 					// 当前页左边花最多 bothNum 个数字
  125. 					continue;
  126. 				}
  127. 				$lastPage = $page - $i;
  128. 				echo '<a href="?'.$parameters.'&page='.$lastPage.'">'.$lastPage.'</a>';
  129. 			}
  130. 			//	当前页
  131. 			echo '<a href="?'.$parameters.'&page='.$page.'" class="cur_page">'.$page.'</a>';
  132. 			//	当前页的右边
  133. 			for($i = 1;$i <= $bothNum;$i++)
  134. 			{
  135. 				if(($page + $i) > $tot_pages) 
  136. 				{ 
  137. 					// 当前页右边花最多 bothNum 个数字
  138. 					break;
  139. 				}
  140. 				$lastPage = $page + $i;
  141. 				echo '<a href="?'.$parameters.'&page='.$lastPage.'">'.$lastPage.'</a>';
  142. 			}			
  143. 			//	显示省略号
  144. 			if($page + $bothNum < $tot_pages - 1)
  145. 			{
  146. 				echo '<a>…</a>';
  147. 			}
  148. 			//	显示最后一页
  149. 			if($page < $tot_pages && $page + $bothNum < $tot_pages)
  150. 			{
  151. 				echo '<a href="?'.$parameters.'&page='.$tot_pages.'">'.$tot_pages.'</a>';
  152. 			}
  153. 		?>		
  154. 	
  155. 	    <a href="?<?php echo $parameters;?>&page=<?php echo $next_page;?>">下一页</a>  
  156. 	    <a href="?<?php echo $parameters;?>&page=<?php echo $tot_pages;?>">尾页</a>
  157. 	</div>
  158. <?php
  159. 	//	关闭MySQL连接
  160. 	mysqli_close($link);
  161. ?>

版权归 马富天个人博客 所有

本文标题:《PHP实现分页中带有省略缩略功能的代码》

本文链接地址:http://www.mafutian.com/362.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

1

0

上一篇《 Apache 2.2.22 中配置虚拟主机后禁止直接访问 IP 进入网站 》 下一篇《 如何在电脑 PC 端上对只能通过手机 Wap 端访问的页面进行分析【查看源代码等等】 》

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多