Home  >  Article  >  Backend Development  >  About the implementation of php paging function

About the implementation of php paging function

藏色散人
藏色散人Original
2020-07-22 09:52:222377browse

How to implement the paging function of php: first use "parse_url" to parse the url array; then obtain the list page and collect the content to be displayed; then assign the calculated limit starting position to the variable $page; Finally, use $page and $pageSize to fetch data from the database and output it for display.

About the implementation of php paging function

realization of php paging function

In a website, if there is too much content in the list page, paging will usually be set Function, today we will study the paging principle together and implement this function through a small case.

Recommended: "PHP Tutorial"

Paging Principle

Page display, the data taken out from the mysql database is displayed in regular sections. Use the limit in the sql statement to bind its starting data to the number of pages, and fetch the data from the database according to the number of pages.

For example: Assume that the database table name is list, and 10 pieces of information are fetched from each page

    第1页    select * from list limit 0,10;
    第2页   select * from list limit 10,10;
    第3页   select * from list limit 20,10;

From this point of view, the nth page is select * from list limit (n-1)*10,10 ;

In this way we get a formula to get data using the number of pages:

select * from list limit ($page-1)*$pagesize,$pagesize; $page is the current The number of pages, $pagesize is the number of items per page.

Needed knowledge points

1.基本的操作数据库函数
1.1 mysqli_connect();连接数据库,例如$link = mysqli_connect('127.0.0.1','root',12345678,'bbs'); 
1.2 mysqli_query():获取数据 例如$res = mysqli_query($link,"select * from list");第二个参数为sql语句
1.3 mysqli_num_rows():查看获取了多少条数据 例如 $num = mysqli_num_rows($res);
1.4 mysqli_fetch_assoc(),或者mysqli_fetch_row():从获取的数据集中取一条数据,每次只取一条,取完指针就指向下一条. 例如mysqli_fetch_assoc($res),除了fetch_assoc,fetch_row还有fetch_array,他们具体的区别请参考手册
1.5 limit 操作数据库中数据的,limit 开始位置,操作条数 例如从数据库中取数 select * from list limit 10,10;
2.其他相关知识
2.1 $_SERVER['REQUEST_URI']获取当前页面的url 例如 https://i.cnblogs.com/EditPosts.aspx?opt=1的url为/EditPosts.aspx?opt=1
2.2 parse_url():解析url,返回url的各个组成部分,如果不写第二个参数,返回的数组中可能的键有以下几种:
    scheme - 如 http,
    host
    port
    user
    pass
    path
    query - 在问号 ? 之后
    fragment - 在散列符号 # 之后

Implementation process

1. Get the current url string, and use parse_url to parse to get the url array

2. Connect to the server, obtain the content collection to be displayed on the list page, count the total number of items displayed, and then calculate the total number of pages of content

3. Determine whether the page is in the submitted state, if not The default is the first page $pageval

4. Assign the calculated limit starting position to the variable $page

5. Use $page and $pageSize to fetch data from the database

6. Loop through the data collection, and the output is displayed on the page

The specific code is as follows

$url = $_SERVER['REQUEST_URI'];
$url = parse_url($url);
$url = $url['path'];
$pageSize = 4;
//连接服务器
$link = mysqli_connect('127.0.0.1','root',12345678,'bbs');
$res = mysqli_query($link,'select * from fenye');
$num = mysqli_num_rows($res);
$pageNum = ceil($num/$pageSize);
//判断页面是否是提交状态
if ( isset($_GET['page']) && $_GET['page'] >1) {
    $pageVal = $_GET['page'];
}else {
    $pageVal = 1;
}
//计算起始位置
$page = ($pageVal-1)*$pageSize;
//去数据库取数据
$res = $mysqli_query($link,"select * from fenye limit $page,$pageSize");
//如果$res有值,则循环便利结果展示输出在页面
if ($res) {
    while( $row = mysqli_fetch_assoc($res) ) {
    echo $row['name']. '|'.$row['age'].'
'; } } //html添加页数部分 1; 2; 3; 4; 5; 总共页,当前在

The above is the detailed content of About the implementation of php paging function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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