php mysql 分组 分页_简单的PHP+Mysql实现分页

1 <?php2 /**3 * PHP+Mysql实现分页4 * **/

5 ?>

6

7

8

9

10

11

12 /**/

13 body{14 font-size:12px;FONT-FAMILY:verdana;width:100%;15 }16 /**/

17 div.page{18 text-align:center;19 }20 /**/

21 div.page a{22 border :#aaaadd 1px solid;text-decoration:none;padding:2px 5px 2px 5px;margin:2px;

23 }24 /**/

25 div.page span.current{26 border:#000099 1px solid;background-color:#000099;padding:4px 6px 4px 6px;margin:2px;color:#fff;

27 font-weight:bold;28 }29 /**/

30 div.page span.disable{31 border:#eee 1px solid;padding:2px 5px 2px 5px;margin:2px;color:#ddd;

32 }33 /**/

34 div.page form{35 display:inline;36 }37 /**/

38 div.content{39 height:300px;40 }41

42

43

44 <?php45 /*echo "

";46 print_r($_SERVER);*/

47 /**1、传入页码**/

48 $page = $_GET['p'];//用GET方法得到页码

49 /**2、根据页码取出数据:php->mysql的处理**/

50 //配置项

51 $host = "localhost"; //数据库地址

52 $username = "root"; //登录用户名

53 $password = ""; //密码

54 $db = "test"; //所用数据库

55 $pageSize = 10; //每一页的内容数量

56 $showPage = 5; //能直接显示的页码数量57 //连接数据库

58 $conn = mysql_connect($host,$username,$password);59 if(!$conn){60 echo "数据库连接失败";61 }62 //选择数据库

63 mysql_select_db($db);64 //设置编码格式

65 mysql_query("SET NAMES UTF8");66 //编写sql获取分页数据select *from 表名 limit 起始位置,显示条数

67 $sql = "SELECT * FROM page LIMIT ".(($page - 1) * $pageSize).", $pageSize";68

69 //执行sql语句后得到资源句柄

70 $result = mysql_query($sql);71 //var_dump($result);72

73 //为一个div块,放置网页内容

74 echo "

";75 echo "
IDNAME

78 while($row = mysql_fetch_assoc($result)){79 echo "

";80 echo "{$row['id']}";81 echo "{$row['name']}";82 echo "";83 }84 echo "";85 echo "
";86

87 //释放结果,关闭连接

88 mysql_free_result($result);89 //获取数据总数

90 $total_sql = "SELECT COUNT(*) FROM page";91 $total_result = mysql_fetch_array(mysql_query($total_sql));92 $total = $total_result[0];93 //计算出总的页码数

94 $total_pages = ceil($total/$pageSize);95

96 mysql_close($conn);97 /**3、显示数据 + 分页条 **/

98 //初始化分页条,并放入div块中

99 $page_banner = "

";100 //计算偏移量

101 $pageOffset = ($showPage - 1)/2; //根据显示页码数计算偏移量102

103 //如果在第一页则隐藏首页与上一页

104 if($page > 1){105 $page_banner .= "首页";106 $page_banner .= "";107 }else{108 $page_banner .= "首页";109 $page_banner .= "";110 }111

112 //初始化数据

113 $start = 1; //能够直接选定的页码的首位

114 $end = $total_pages; //能够直接选定的页码的末位115 //如果总页数大于显示的页数,进行隐藏,分两种情况

116 if($total_pages > $showPage) {117 //头部省略

118 if($page > $pageOffset + 1){119 $page_banner .= "...";120 }121

122 //分别讨论首末位页码的大小

123 if($page > $pageOffset){124 $start = $page - $pageOffset;125 //末尾页码需要分情况讨论

126 $end = $page + $pageOffset < $total_pages ? $page + $pageOffset : $total_pages;127 }else{128 $start = 1;129 $end = $total_pages > $showPage ? $showPage : $total_pages;130 }131 //当前页加上偏移量大于总页码的情况

132 if($page + $pageOffset > $total_pages){133 $start = $start - ($page + $pageOffset - $end);134 }135 }136

137 //显示页码连接

138 for($i = $start;$i <= $end;$i ++){139 if($page == $i){140 $page_banner .= "{$i}";141 }else{142 $page_banner .= "{$i}";143 }144 }145

146 //尾部省略

147 if($total_pages > $showPage && $page + $pageOffset < $total_pages){148 $page_banner .= "...";149 }150 //如果在最后一页则隐藏尾页与下一页

151 if($page < $total_pages){152 $page_banner .= "下一页>";153 $page_banner .= "尾页";154 }else{155 $page_banner .= "下一页>";156 $page_banner .= "尾页";157 }158

159 //跳转页码的实现

160 $page_banner .= "共{$total_pages}页,";161 $page_banner .= "

";162 $page_banner .= "到页";163 $page_banner .= "";164 $page_banner .= "
";165

166 //将分页条输出

167 echo $page_banner;168

169

170

171

172

173

174

175

176

177

178

179 ?>

180

181

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值