分页效果在网页中是罕见的,但是怎样才能完成分页呢,本日做了两种要领来完成一下分页的效果。
起首,我们须要预备在数据库内里预备一个表,而且插进去数据,这些都是必须的条件工作了,不多说,如图所示(库名为jereh,表名为n_content):
步骤剖析:
我们须要分页的话,须要用到 "select * from tableName limit num1,num2”;这是一个限定查询的语句,背面跟两个参数,num1为从第几个最先查找,num2为查找的信息的个数,如我想查找2,3,4这三条数据,以下图所示:
好了,我们最先说步骤:
1、竖立一个函数,用来完成限定查询的功用
起首我们来想一下,完成这个功用我们起首要知道当前的页数和要限定的一个页面显现几条信息,这个能够用形参传过来。那末,
我们设置pageNum为页数,pageSize为一个页面显现几条数据,在 "select * from tableName limit num1,num2”这个查询语句中,
num1就是(pageNum-1)*pageSize,num2就是pageSize,邃晓了这个关联以后,那末就好办了,代码在下面:
//分页的函数 function news($pageNum = 1, $pageSize = 3) { $array = array(); $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); // limit为束缚显现若干条信息,背面有两个参数,第一个为从第几个最先,第二个为长度 $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize; $r = mysqli_query($coon, $rs); while ($obj = mysqli_fetch_object($r)) { $array[] = $obj; } mysqli_close($coon,"jereh"); return $array; }
上面的代码中,值得注意的是,limit背面一定要加一个空格,不然会出毛病。
相干引荐:《php入门教程》
2、竖立第二个函数,用来显现总页数的函数
这个没什么新的学问点,都是之前写过的学问点了,直接看代码吧。
//显现总页数的函数 function allNews() { $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); $rs = "select count(*) num from n_content"; //能够显现出总页数 $r = mysqli_query($coon, $rs); $obj = mysqli_fetch_object($r); mysqli_close($coon,"jereh"); return $obj->num; }
3、挪用这两个函数,举行开端的处置惩罚
我们想做下一页、下一页的效果,须要用到get要领在本页面传数据,那末我们在革新页面的时刻,一定get是得不到数据的,所以须要用三目运算了。
<?php @$allNum = allNews(); @$pageSize = 3; //商定每页显现的信息条数 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?>
4、在页面举行显现
在页面显现的话,须要用到了foreach轮回了,代码简朴,看下面:
<table border="1" style="text-align: center" cellpadding="0"> <tr> <td>编号</td> <td>新闻标题</td> <td>泉源</td> <td>点击率</td> <td>宣布日期</td> </tr> <?php foreach($array as $key=>$values){ echo "<tr>"; echo "<td>{$values->id}</td>"; echo "<td>{$values->title}</td>"; echo "<td>{$values->src}</td>"; echo "<td>{$values->indexs}</td>"; echo "<td>{$values->times}</td>"; echo "</tr>"; } ?> </table>
5、完成上一页,下一页的效果
要完成页面跳转的效果,我们须要用到了a标签的href属性,地点写“?pageNum = ...”这个pageNum是我们本身定义的,由因而get来通报的,在上一步内里我们已用$_GET接受了参数,所以我们只须要举行get的参数通报就能够了;
首页:“pageNum=1”;
上一页:"pageNum=<?php echo $pageNum==1?1:$pageNum-1?>"
下一页:"pageNum=<?php echo $pageNum==$endPage ?$endPage :$pageNum+1?>"
尾页:“pageNum=<?php echo $pageNum =$endPage?>”;
特别注意的是,”pageNum=”的时刻背面千万千万不要空格,代码以下:
<a href="?pageNum=1">首页</a> <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a> <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a> <a href="?pageNum=<?php echo $endPage?>">尾页</a>
代码以下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>分页</title> <?php //分页的函数 function news($pageNum = 1, $pageSize = 3) { $array = array(); $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); // limit为束缚显现若干条信息,背面有两个参数,第一个为从第几个最先,第二个为长度 $rs = "select * from n_content limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize; $r = mysqli_query($coon, $rs); while ($obj = mysqli_fetch_object($r)) { $array[] = $obj; } mysqli_close($coon,"jereh"); return $array; } //显现总页数的函数 function allNews() { $coon = mysqli_connect("localhost", "root"); mysqli_select_db($coon, "jereh"); mysqli_set_charset($coon, "utf8"); $rs = "select count(*) num from n_content"; //能够显现出总页数 $r = mysqli_query($coon, $rs); $obj = mysqli_fetch_object($r); mysqli_close($coon,"jereh"); return $obj->num; } @$allNum = allNews(); @$pageSize = 3; //商定没页显现几条信息 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?> </head> <body> <table border="1" style="text-align: center" cellpadding="0"> <tr> <td>编号</td> <td>新闻标题</td> <td>泉源</td> <td>点击率</td> <td>宣布日期</td> </tr> <?php foreach($array as $key=>$values){ echo "<tr>"; echo "<td>{$values->id}</td>"; echo "<td>{$values->title}</td>"; echo "<td>{$values->src}</td>"; echo "<td>{$values->indexs}</td>"; echo "<td>{$values->times}</td>"; echo "</tr>"; } ?> </table> <div> <a href="?pageNum=1">首页</a> <a href="?pageNum=<?php echo $pageNum==1?1:($pageNum-1)?>">上一页</a> <a href="?pageNum=<?php echo $pageNum==$endPage?$endPage:($pageNum+1)?>">下一页</a> <a href="?pageNum=<?php echo $endPage?>">尾页</a> </div> </body> </html>
效果以下:
以上就是php怎样完成分页功用的细致内容,更多请关注ki4网别的相干文章!