Paging I believe that my friends are very familiar with this. In our PHP development, whether it is a corporate website or a shopping mall. All background management is inseparable from paging, which can be said to be an indispensable part. The paging effect is common in PHP 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 the necessary prerequisites. Not much to say, as shown in the figure (the library name is jereh , table name is n_content):
Step analysis:
If we need paging , you need to use "select * from tableName limit num1,num2"; this is a limited query statement, followed by two parameters, num1 is the number to start searching from, num2 is the number of information to be searched, For example, I want to find 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 restricting queries
First of all, let’s think about it. To implement this function, we must first know the current number of pages and how many pieces of information to be displayed on a page to be restricted. This It 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, and num2 is pageSize. After understanding this relationship, it will be easy to handle. The code is below
//分页的函数 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; }
above In the code, it is worth noting that a space must be added after limit, otherwise an error will occur;
2. Create a second function to display the total number of pages
This There are no new knowledge points, they are all knowledge points written before, 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
If we want to get the results of the next page, we need to use the get method to transfer data on this page. Then when we refresh the page, get will definitely not get the data, so we need to use trinocular arithmetic. Okay, look at the code
<?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 the previous page and the next page
To achieve the effect of page jump, we need to use the href of the a tag Attribute and address write "?pageNum =..." This pageNum is defined by ourselves. Since it is passed by get, in the previous step we have used $_GET to accept the parameters, so we only need to pass the parameters of get. That’s it;
Home page: "pageNum=1";
Previous page: "pageNum= "
Next page:"pageNum="
Last page: "pageNum=< ;?php echo $pageNum =$endPage?>”;
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 total 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><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>
Summary:
The paging effect must have data to display, so we must perform database operations, in the database A certain amount of data is required, so everyone should operate it carefully!Related recommendations:
Examples of paging principles in php
How to implement the paging function of php background table
The above is the detailed content of Example of php implementing paging effect. For more information, please follow other related articles on the PHP Chinese website!