php+mysql实现分页

来源:互联网 发布:软件开发安卓 编辑:程序博客网 时间:2024/06/06 05:06

第一步:连接数据库

<?php

$link=mysqli_connect("localhost","数据库用户名","数据库密码","数据库名");

if(!$link){

die('could not connect:' .mysql_error());//连接数据库失败

}

mysqli_query($link,'set names utf8');//设置数据库编码格式

?>

OK,到这数据库就写完啦,怎么样?是不是很简单呀!大笑下面我们继续吧

第二步:实现具体的分页功能

(1)传入页码

$page=$_GET['P'];//p为传入的页码,即要取第几页的数据

/**    初始化p值   **/

if(!isset($_GET['p'])) $_GET['p']=1;
$_GET['p']=(int)$_GET['p'];

(2)根据页码取出数据,php->mysql处理

//编写sql获取分页数据,select * from 表名 limit 起始位置,显示条数

$sql="select * from test limit".(($page-1)*$pageSize).",$pageSize";//mysql数据库中第一条数据默认从0开始。

$result=mysqli_query($link,$sql);//把sql语句传入数据库

while($row=mysqli_fetch_assoc($result))//处理我们的数据

{

?>

/**显示信息内容**/

<div class="titlebar">
<span class="shoptitle"><?php echo $row["title"]?></span>
<span class="distance">650m</span>
</div>

//释放结果,关闭连接

mysql_free_result($result);

mysql_close($link);

<?php

}

?>

(3)显示数据+分页条(其实就是一个超链接)

$page_banner="<a>上一页</a>";

$page_banner="<a>下一页</a>";


详细代码如下:

<?php
//获取数据总数
$total_sql="select COUNT(*) as num FROM practice_task";
$result=mysqli_query($link,$total_sql);
$total_result=mysqli_fetch_assoc($result);
//print_r($total_result);
$total=$total_result['num'];
//echo "总条数:".$total;
//计算页数
$total_pages=ceil($total/$pageSize);
//计算页码偏移量
$pageoffset=($showPage-1)/2;
//定义显示页码的其实位置
$start=1;
$end=$total_pages;
$page_banner="<div class='page'>";
if($page>1){
$page_banner.="<a href='".$_SERVER['PHP_SELF']."?p=1'>首页</a>";
$page_banner.= "<a href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一页</a>";
}
if($total_pages>$showPage)
{
if($page>$pageoffset + 1){
$page_banner.="...";
}
if($page > $pageoffset){
$start=$page-$pageoffset;
$end=$total_pages>$page+$pageoffset ? $page+$pageoffset:$total_pages;
}else{
$start=1;
$end=$total_pages>$showPage ? $showPage:$total_pages;
}
if($page + $pageoffset > $total_pages){
$start=$start-($page + $pageoffset - $end);
}
}
//显示数据
for($i = $start;$i<=$end;$i++){
if($page==$i){
$page_banner.="<span class='current'>{$i}</a>";
}else{
$page_banner.= "<a href='".$_SERVER['PHP_SELF']."?p=".$i."'>$i</a>";
}

}
if($total_pages>$showPage && $total_pages>$page + $pageoffset){
$page_banner.="...";
}
if($page<$total_pages){
   $page_banner.= "<a href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一页</a>";
   $page_banner.= "<a href='".$_SERVER['PHP_SELF']."?p=".($total_pages)."'>尾页</a>";
}

$page_banner.="共{$total_pages}页";
$page_banner.="</div>";
echo "$page_banner";


效果如下:













原创粉丝点击