基于php+mysql实现分页技术
2016-10-30 19:11
543 查看
基于php+mysql实现分页技术
1.全部代码
<html><head>
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<title>PHP+MySQL实现分页技术</title>
<style type="text/css">
body{
font-size:12px;
font-family: verdana;
width:100%;
}
.page a{
border:1px solid #aaaadd;
text-decoration: none;
padding:2px 5px 2px 5px;
margin:2px;
}
.page a:hover{
border:2px solid #aaaadd;
padding:2px 6px 2px 6px;
color:white;
background-color: blue;
}
.page span.current{
color:white;
border:1px solid #000099;
background-color: #000099;
padding:2px 6px 2px 6px;
margin:2px;
}
.page span.disable{
border:1px solid #eee;
padding:2px 5px 2px 5px;
margin:2px;
color:#ddd;
}
.page form{
display: inline;
}
.content{
height:300px;
}
</style>
</head>
<body>
<h2 align="center">PHP+MySQL简单分页技术的实现</h2>
<?php
/**1.传入页码 **/
$page=$_GET['p'];//url中传入的值 (p=1/2/3...)
/**2.传入分页数据**/
$host="localhost:3307";
$username="root";
$password="";
$db="test";
$pre=($page-1)*10;
$pagesize=10;
$showpage=5;
$conn=@mysql_connect($host,$username,$password);
if(!$conn){
echo "数据库连接失败!";
exit;
}
mysql_select_db($db);
mysql_query("SET NAMES UTF8");
$sql="SELECT * FROM page LIMIT $pre,$pagesize";
$result=mysql_query($sql);
echo "<div class='content'>";
echo "<table border=1 cellspacing=0 width=40% align=center>";
echo "<tr bgcolor='#aaaadd'><td>ID</td><td>NAME</td></tr>";
while($row=@mysql_fetch_array($result)){
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "</tr>";
}
echo "</table>";
echo "</div>";
//释放结果,关闭链接
mysql_free_result($result);
//获取数据总数
$total_sql="SELECT COUNT(*) FROM page";
$total_result=mysql_fetch_array(mysql_query($total_sql));
$total=$total_result[0];
//计算页数,ceil向上取1,floor向下取1
$total_page=ceil($total/$pagesize );
mysql_close($conn );
/**显示数据,分页条**/
$page_banner="<div class='page' align='center' >";
//计算偏移量
$pageoffset=($showpage-1)/2;
if($page>1){
$page_banner.="<a href=".$_SERVER['PHP_SELF']."?p=1>首页</a>";
$page_banner.="<a href=".$_SERVER['PHP_SELF']."?p=".($page-1)."><上一页</a>";
}else{
$page_banner.="<span class='disable'>首页</s
4000
pan>";
$page_banner.="<span class='disable'><上一页</span>";
}
//初始化数据
$start=1;
$end=$total_page;
if($total_page>$showpage){
if($page>$pageoffset+1){
$page_banner.="...";
}
if($page>$pageoffset){
$start=$page-$pageoffset;
$end=$total_page>$page+$pageoffset?$page+$pageoffset:$total_page;
}
else{
$start=1;
$end=$total_page>$showpage?$showpage:$total_page;
}
if($page+$pageoffset>$total_page){
$start=$start-($page+$pageoffset-$end);
}
}
for($i=$start;$i<=$end;$i++){
if($page==$i){
$page_banner.="<span class='current'>$i</span>";
}else{
$page_banner.="<a href=".$_SERVER['PHP_SELF']."?p=".$i.">{$i}</a>";
}
}
if($total_page>$showpage&&$total_page>$page+$pageoffset){
$page_banner.="...";
}
if($page<$total_page){
$page_banner.="<a href=".$_SERVER['PHP_SELF']."?p=".($page+1).">下一页></a>";
$page_banner.="<a href=".$_SERVER['PHP_SELF']."?p=$total_page>尾页</a>";
}else{
$page_banner.="<span class='disable'>下一页></span>";
$page_banner.="<span class='disable'>尾页</span>";
}
$page_banner.="共{$total_page}页,";
$page_banner.="<form action='mypage.php' method='get'>";
$page_banner.="到第<input type='text' size='2' name='p'>页";
$page_banner.="<input type='submit' value='确定'>";
$page_banner.="</form></div>";
echo $page_banner;
?>
</body>
</html>
2. 技术说明
(1).$page=$_GET['p'];//url中传入的值 (p=1/2/3...)p是在浏览器地址栏url后面要输入的比如: ?p=2 ,表示传入的页码 。
(2) .$host="localhost:3307"; // 主机名+ 端口号
$username="root"; // 用户名(mysql)
$password=""; //mysql密码
$db="test"; //数据库
$pre=($page-1)*10; // 当前页之前的数据条数
$pagesize=10; // 每页显示的数据条数
$showpage=5;
(3) .$sql="SELECT * FROM page LIMIT $pre,$pagesize";// 从数据库查询数据,从第$pre条数据开始查询,一共查uxn$pagesize条
(4) .while($row=@mysql_fetch_array($result)){ // 输出查询到的数据,显示出来
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "</tr>";
}
(5).$total_sql="SELECT COUNT(*) FROM page"; //数据总条数
$total_result=mysql_fetch_array(mysql_query($total_sql));
$total=$total_result[0];
//计算页数,ceil向上取1,floor向下取1
$total_page=ceil($total/$pagesize ); // 总页数
(6).
相关文章推荐
- 基于bootstrap+php+mysql的分页实现
- 默默小谈PHP&MYSQL分页原理及实现
- PHP&MYSQL分页原理及实现
- 基于PHP多维数组的分页实现(可用于在线购物车等应用)
- 基于hibernate实现的分页技术
- Ajax+js+dom+json+php+mysql实现仿google的超强分页、隔行变色效果
- 基于PHP的AJAX技术实现文件异步上传
- ajax+js+dom+json+php+mysql实现仿百度、google的分页效果
- PHP+MySQL实现分页的常用方法
- 基于php+Mysql的SQL Injection 攻击技术
- MySQL limit 语句 和 PHP 分页技术
- 基于PHP的AJAX技术实现文件异步上传
- 基于php&mysql实现聊天室功能的代码实例分享
- 使用函数递归实现基于php和MySQL的动态树型菜单
- PHP+Ajax 实现分页技术
- 用PHP+MYSQL实现论坛里的分级+分页显示
- 使用"函数递归"实现基于php和MySQL的动态树型菜单
- Ajax+js+dom+json+php+mysql实现仿百度、google超强分页效果
- 基于php&mysql实现聊天室功能的代码实例分享
- 基于LAMP/Linux+Apache+Mysql+PHP的实现