1. 首页
  2. 功能技巧
  3. php之mysql分页代码[函数]

php之mysql分页代码[函数]

在写列表页读数据的时候往往要写上一个分页代码,小编研究了很久,也搜索了很多东西,最后总结出了以下分页代码,有需要的朋友可以研究研究


/**********分页开始**********/
$pageSize = 10; //每页显示数据条数
$result=mysql_query("select * from ".DB_PREFIX."kami_list");//查询总页数
$totalNum = mysql_num_rows($result); //数据总条数
$totalPageCount = ceil($totalNum/$pageSize); //总页数
$nowPage = isset($_GET['page']) ? intval($_GET['page']) : 1;//当前页码
$next = $nowPage+1;//下一页
$prev = $nowPage-1;//上一页
$url = "?plugin=lantk_kami&title=".$title."&page=";
$offset = ($nowPage-1)*$pageSize;
//开始分页导航条代码:
$pagefy = "<a href=\"".$url."1\">首页</a>";//首页
$pagefy.= ($prev <= 0 ) ? "" : " <a href=\"".$url.$prev."\">上一页</a>";//如果下一页大于总页数,则不显示
$pagefy.= ($next > $totalPageCount) ? "" : " <a href=\"".$url.$next."\">下一页</a>";//如果下一页大于总页数,则不显示
$pagefy.= " <a href=\"".$url.$totalPageCount."\">尾页</a>";//尾页
//下拉跳转列表,循环列出所有页码:
$pagefy.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url\"+this.value'>\n";
for($pagefor=1;$pagefor <= $totalPageCount;$pagefor++){
	if($pagefor==$nowPage) $pagefy.="<option value='$pagefor' selected>$pagefor</option>\n"; 
	else $pagefy.="<option value='$pagefor'>$pagefor</option>\n";   
}
$pagefy.="</select> 页,共 $totalPageCount 页"; //导航代码结束
使用方法也很简单,首先定义 每页显示数据条数 变量,默认是10条。


然后定义你的 “查询总页数” 的SQL语句。

最后把你的循环sql语句的数量部分改为 limit $offset,$pageSize

并打印出分页导航 $pagefy ,示例:


//链接数据库部分,省略
$sql1="SELECT * FROM ".DB_PREFIX."kami_list ORDER BY `gid` DESC limit $offset,$pageSize";  //SQL查询语句,注意最后两个参数
$list1 = $DB1->query($sql1);
while($row1 = $DB1->fetch_array($list1)){//循环开始
	echo '<li>'.$row1['title'].'</li>';
}//循环结束
echo "<li>".$pagefy."</li>";//输出分页导航
如下图:


QQ截图20150913082801.jpg

评论(3)