您的位置:首页 > 编程语言 > PHP开发

基于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).
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: