Home >Backend Development >PHP Problem >How to implement paging function in php
Paging effect is common in web pages, but how can we achieve paging? Today we have done two methods to achieve the paging effect.
First of all, we need to prepare a table in the database and insert data. These are all necessary prerequisites. Not much to say, as shown in the figure (the library name is jereh, the table name is n_content) :
Step analysis:
If we need paging, we need to use "select * from tableName limit num1,num2"; this is a statement that limits the query, followed by With two parameters, num1 is the number to start searching from, and num2 is the number of information to be searched. For example, I want to search for three pieces of data: 2, 3, and 4, as shown in the figure below:
Okay, Let’s start with the steps:
1. Create a function to implement the function of limiting the query
First of all, let’s think about it. To implement this function, we must first know the current The number of pages and the number of information to be displayed on one page can be passed in using formal parameters. Then,
we set pageNum to be the number of pages, and pageSize to display several pieces of data on one page. In the query statement "select * from tableName limit num1,num2",
num1 is (pageNum -1) *pageSize, num2 is pageSize. After understanding this relationship, it will be easy to handle. The code is as follows:
//分页的函数 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; }
In the above code, it is worth noting that a space must be added after limit , otherwise an error will occur.
Related recommendations: "php Getting Started Tutorial"
2. Create a second function to display the total number of pages
There is no new knowledge point in this. They are all knowledge points that have been written before. Let’s just look at the code.
//显示总页数的函数 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. Call these two functions for preliminary processing
We want to get the results of the next page and the next page, so we need to use the get method. This page transmits data, so when we refresh the page, get will definitely not get the data, so we need to use trinocular arithmetic.
<?php @$allNum = allNews(); @$pageSize = 3; //约定每页显示的信息条数 @$pageNum = empty($_GET["pageNum"])?1:$_GET["pageNum"]; @$endPage = ceil($allNum/$pageSize); //总页数 @$array = news($pageNum,$pageSize); ?>
4. Display on the page
If you want to display on the page, you need to use a foreach loop. The code is simple, see below:
<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. To achieve the effect of previous page and next page
To achieve the effect of page jump, we need to use the href attribute of the a tag, and write the address "?pageNum = .. ." This pageNum is defined by ourselves. Since it is passed by get, we have already used $_GET to accept the parameters in the previous step, so we only need to pass the parameters of get;
首页: "pageNum=1";
Previous page: "pageNum="
Next page :"pageNum="
Last page: "pageNum=
Special attention should be paid to the following: "pageNum=" must not be followed by a space. The code is as follows:
<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>
The code is as follows:
分页 <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>
The effect is as follows :
##
The above is the detailed content of How to implement paging function in php. For more information, please follow other related articles on the PHP Chinese website!