php mysqli 原始分页源码
2020-07-05 重庆LiSEO工作室
PHP MySQLi 分页主页面index.php的程序源码
<?php //引入连接数据库代码 require_once 'public/conn.php' ; $url='index.php'; //设置分页时页面地址 $sql="select count(*) from `tablename`"; //查询总记录数目 $result=$conn->query($sql); //执行sql查询语句 $pageres=$result->fetch_row(); //查询总记录条数 $totalrows=$pageres[0]; //将总记录数值赋值给$totalpages if($totalrows>0){ //如果结果集中记录数目大于0,表示从数据库中取出有记录,则开始设置分页信息 $pagesize=3; //设置每页分页数为10 $totalpages= intval($totalrows / $pagesize); //获取分页数整数 if($totalrows % $pagesize >0){ //如果分页计算结果余数大于0,则分页总数要加1 $totalpages=$totalpages +1; } if(isset($_GET["page"])){ //获取当前分页数 $page=intval($_GET["page"]); //获取分页值时,只获取整数部分,包括恶意参数 if($page<1){ $page=1; } if($page>$totalpages){ $page=$totalpages; } //如果获取的分类数大于分页总数,则将分页设置与总分页数相等 } else { //没有获取到分页值,则将分页数设置为1 $page=1; } $offset=$pagesize * ($page-1); //设定从第几页开始查询 $sql="select * from `tablename` limit $offset,$pagesize"; //分页语句 $rs=$conn->query($sql); $array=$rs->fetch_all(MYSQLI_ASSOC); //设置具体分页码 $first=1; //设置首页 $prev=$page-1; //设置上一页 $next=$page+1; //设置下一页 $last=$totalpages; //设置末页 } else { //如果没有取出记录,则给数组$array赋值一个空值,以防止模板中使用变量$array报错 $array=array(); } //调用index.html模板 require_once 'view/index.html'; ?>
模板index.html中需要用到的分页源码
<?php if(!empty($array)){ //显示分页码前先判断下当前的数组是否为空 echo "共有 $totalpages 页( $page / $totalpages )"; if($page>1){ //表示为当前页不是首页 echo "<a href='$url?page=$first'>首页</a>"; echo "<a href='$url?page=$prev'>上一页</a>"; } for($j=1;$j<$page;$j++){ //遍历出当前页之前的具体数字页码 echo "<a href='$url?page=$j'>[$j]</a>"; } echo $page; //输出当前的分页码 for($j=$page+1;$j<=$totalpages;$j++){ //遍历出当前页之后的具体数字页码 echo "<a href='$url?page=$j'>[$j]</a>"; } if($page<$totalpages){ //表示当前页不是末页 echo "<a href='$url?page=$next'>下一页</a>"; echo "<a href='$url?page=$last'>末页</a>"; } } ?>