Home > Backend Development > PHP Tutorial > Example of php implementing paging effect

Example of php implementing paging effect

黄舟
Release: 2023-03-17 10:34:01
Original
18086 people have browsed it

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;
}
Copy after login

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;
}
Copy after login

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);
    ?>
Copy after login

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>
Copy after login

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>
Copy after login

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>

Copy after login
The effect is as follows:

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

How to write PHP paging code

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!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template