How to achieve paging effect in php

爱喝马黛茶的安东尼
Release: 2023-02-23 13:58:01
Original
3091 people have browsed it

How to achieve paging effect 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) :

How to achieve paging effect in php

Step analysis:

If we need paging, we 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, 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 following figure:

How to achieve paging effect in php

Related recommendations: "PHP Tutorial"

Okay, let’s start with the steps:

1. Create a function to Implement the function of limiting 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 we want to limit on a page. This 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;
}
Copy after login

In the above 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.

There are no new knowledge points 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;
}
Copy after login

3. Call these two functions for preliminary processing.

We want to make the next page and 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, let’s 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.

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 page jump effect, we need to use the href attribute of the a tag. The address is "?pageNum =..." This pageNum is defined by ourselves. Since it is passed by get, in In the previous step, we have already used $_GET to accept the parameters, so we only need to pass the get parameters;

Homepage: "pageNum=1";

Previous page: " pageNum="

Next page:"pageNum="

Last page: "pageNum=";

Special attention is, "pageNum=" Be sure not to have a space after it. 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>

 

Copy after login

The effect is as follows:

How to achieve paging effect in php

The above is the detailed content of How to achieve paging effect in php. 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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!