记录学习与后端知识并分享学习代码过程(会飞的鱼Blog)

php之mysql分页代码[函数]

会飞的鱼 0 2000 2017年9月27日

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

/**********分页开始**********/
$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>";//输出分页导航

如下图:

Image

本文由 @会飞的鱼 于 2017-9-27 发布在 会飞的鱼Blog,如无特别说明,本博文章均为原创,转载请保留出处。

网友评论

    暂无评论

会飞的鱼 在线咨询

在线时间:9:00-22:00
周六、周日:14:00-22:00