Table of Contents
1. Connect to the database
2. Constructing SQL statements
3. Define the number of items displayed on each page
4. Define the current page
5. Calculate according to the formulalimitThe first parameter required
6. Pass parameters through the address bar to get the $page parameter to define the current page
7. Use buttons to control the up and down page switching
8. Complete code
Home Database Mysql Tutorial Introducing PHP + MySQL to realize paging display of data

Introducing PHP + MySQL to realize paging display of data

Apr 26, 2021 am 09:17 AM
mysql php

Introducing PHP + MySQL to realize paging display of data
1. Connect to the database
$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');
Copy after login

Related free learning recommendations: mysql video tutorial

2. Constructing SQL statements

Paging is actually implemented using the limit keyword in MySQL. For example, we query the first row of a table. Two pieces of data:

select * from student limit 0, 2
Copy after login

limit requires two parameters. The first parameter represents the number of items to start fetching; the second parameter represents how many items to fetch at a time.
Then the meaning expressed by the above SQL statement is to start from the 0th item and take 2 items (in fact, 0 is the 1st item, and counting starts from 0).

We take the first two pieces of data obtained as the first page.

Then continue to fetch the second page, there are still 2 pieces of data, then the SQL statement is:

select * from student limit 2, 2
Copy after login

The third page:

select * from student limit 4, 2
Copy after login

and so on , we found that there are always two items per page, so the second parameter (i.e. 2) of limit has been determined, so how to determine the first parameter? In fact, the rules are as follows:

Page 1: 0, 2 (Page 1 is taken from the position of 0, and 2 are taken, that is, 0 1)
Page 2: 2, 2 (Page 2 Page is taken from the position of 2, and 2 entries are taken, that is, 2 3)
Page 3: 4, 2 (Page 3 is taken from the position of 4, and 2 entries are taken, that is, 4 5)
Page 4: 6, 2 (Page 4 is taken from the position of 6, and 2 items are taken, that is, 6 7)
...

So the starting position of each page = (current page - 1) * Display on each page Number of entries

Page 1: (1 - 1) * 2 = 0
Page 2: (2 - 1) * 2 = 2
Page 3: (3 - 1) * 2 = 4
……

3. Define the number of items displayed on each page
$pageSize = 2;
Copy after login
4. Define the current page
$page = 1;
Copy after login
5. Calculate according to the formulalimitThe first parameter required
$start = ($page - 1) * $pageSize;
Copy after login

So the SQL statement is:

select * from student limit $start, $pageSize;
Copy after login

At this time, change the value of $page, and you can query the corresponding page data.

6. Pass parameters through the address bar to get the $page parameter to define the current page

In order to be more flexible, we pass parameters through the address bar to get the number of pages we want to display. , so the code in step 4 is changed to:

if ($_GET['page']) {
	$page = $_GET['page'];} else {
	$page = 1; // 接收不到按照 1 处理,即默认第 1 页}
Copy after login
7. Use buttons to control the up and down page switching

Execute the SQL statement:

$sql = "select * from student limit $start, $pageSize";$query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);
Copy after login

The results are output to the HTML table:

<table border="1" cellspacing="0" cellpadding="0" style="width: 50%;text-align: center;">
	<caption>学生列表</caption>
	<tr>
		<td>ID</td>
		<td>姓名</td>
		<td>年龄</td>
		<td>性别</td>
		<td>手机号</td>
	</tr>
	<?php foreach ($result as $v) { ?>
	<tr>
		<td><?php echo $v[&#39;id&#39;]; ?></td>
		<td><?php echo $v[&#39;name&#39;]; ?></td>
		<td><?php echo $v[&#39;age&#39;]; ?></td>
		<td><?php echo $v[&#39;sex&#39;]; ?></td>
		<td><?php echo $v[&#39;mobile&#39;]; ?></td>
	</tr>
	<?php } ?></table>
Copy after login

Add up and down page buttons:

<button>上一页</button><button>下一页</button>
Copy after login

When clicking previous page, we need to give the current page $page - 1;
When clicking Next Page, we need to give the current page $page 1;

based on the current page Determine the previous page:

$up = $page - 1;
Copy after login

Assume that the current page is page 2, then $up is 2 - 1 = 1, that is, the previous page is page 1.

Determine the next page based on the current page:

$next = $page + 1;
Copy after login

Assume that the current page is page 2, then $next is 2 1 = 3, that is, the following One page is page 3.

So we add a hyperlink to the button, link to the current page, and carry a page parameter, the value is the corresponding page number.

<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a><a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>
Copy after login

But $up and $next are not infinitely adding or subtracting. When it is already the first page, $up cannot Continue to reduce, so you need to add a judgment when determining the previous page.

if ($page == 1) {
	$up = 1;} else {
	$up = $page - 1;}
Copy after login

Similarly, when determining the next page, you also need to judge. When can you not continue to the next page? When the current page is already the last page, you cannot continue to the next page. How to determine the last page depends on the total number of entries in the current table. If the current table has 10 pieces of data and each page displays 2 pieces, then it needs to be divided into 10/ 2 = 5 pages, this 5 is the last page. If there are 11 pieces of data, then it needs to be divided into 11 / 2 = 5.5 pages, which means that there is 1 piece left after dividing into 5 pages, so it is divided into 6 pages directly, that is, rounded up, then This 6 is the last page.

Find the total number of items:

$sql = "select * from student";$query = mysqli_query($connect, $sql);$num = mysqli_num_rows($query);
Copy after login

According to The total number of items and The number of items displayed on each pageFind out how many pages need to be divided:

$totalPage = ceil($num / $pageSize);
Copy after login

So when judging the next page, change it to:

if ($page == $totalPage) {
	$next = $totalPage;} else {
	$next = $page + 1;	}
Copy after login
8. Complete code
form-7.php
Copy after login
<?php// 连接数据库$connect = mysqli_connect(&#39;localhost&#39;, &#39;用户名&#39;, &#39;密码&#39;, &#39;数据库名&#39;) or die(&#39;数据库连接失败&#39;);mysqli_set_charset($connect, &#39;utf8&#39;);// 查询总条数$sql = "select * from student";$query = mysqli_query($connect, $sql);// 返回结果集中行的数量$num = mysqli_num_rows($query);// 定义每页显示几条$pageSize = 2;// 一共分几页$totalPage = ceil($num / $pageSize);// 获取当前页if ($_GET[&#39;page&#39;]) {
	$page = $_GET[&#39;page&#39;];} else {
	$page = 1;}// 在当前页的基础上确定上一页if ($page == 1) {
	$up = 1;} else {
	$up = $page - 1;}// 在当前页的基础上确定下一页if ($page == $totalPage) {
	$next = $totalPage;} else {
	$next = $page + 1;	}// 求出 limit 的第一个参数$start = ($page - 1) * $pageSize;$sql = "select * from student limit $start, $pageSize";$res = mysqli_query($connect, $sql);$result = mysqli_fetch_all($res, MYSQLI_ASSOC);?><!doctype html><html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
	<table border="1" cellspacing="0" cellpadding="0" style="width: 50%;text-align: center;">
		<caption>学生列表</caption>
		<tr>
			<td>ID</td>
			<td>姓名</td>
			<td>年龄</td>
			<td>性别</td>
			<td>手机号</td>
		</tr>
		<?php foreach ($result as $v) { ?>
		<tr>
			<td><?php echo $v[&#39;id&#39;]; ?></td>
			<td><?php echo $v[&#39;name&#39;]; ?></td>
			<td><?php echo $v[&#39;age&#39;]; ?></td>
			<td><?php echo $v[&#39;sex&#39;]; ?></td>
			<td><?php echo $v[&#39;mobile&#39;]; ?></td>
		</tr>
		<?php } ?>
	</table>
	<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a>
	<a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>
 </body></html>
Copy after login

Related free learning recommendations: mysql database(Video)

The above is the detailed content of Introducing PHP + MySQL to realize paging display of data. For more information, please follow other related articles on the PHP Chinese website!

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1272
29
C# Tutorial
1251
24
Explain the purpose of foreign keys in MySQL. Explain the purpose of foreign keys in MySQL. Apr 25, 2025 am 12:17 AM

In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.

Compare and contrast MySQL and MariaDB. Compare and contrast MySQL and MariaDB. Apr 26, 2025 am 12:08 AM

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

What happens if session_start() is called multiple times? What happens if session_start() is called multiple times? Apr 25, 2025 am 12:06 AM

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

MySQL: The Database, phpMyAdmin: The Management Interface MySQL: The Database, phpMyAdmin: The Management Interface Apr 29, 2025 am 12:44 AM

MySQL and phpMyAdmin can be effectively managed through the following steps: 1. Create and delete database: Just click in phpMyAdmin to complete. 2. Manage tables: You can create tables, modify structures, and add indexes. 3. Data operation: Supports inserting, updating, deleting data and executing SQL queries. 4. Import and export data: Supports SQL, CSV, XML and other formats. 5. Optimization and monitoring: Use the OPTIMIZETABLE command to optimize tables and use query analyzers and monitoring tools to solve performance problems.

Composer: Aiding PHP Development Through AI Composer: Aiding PHP Development Through AI Apr 29, 2025 am 12:27 AM

AI can help optimize the use of Composer. Specific methods include: 1. Dependency management optimization: AI analyzes dependencies, recommends the best version combination, and reduces conflicts. 2. Automated code generation: AI generates composer.json files that conform to best practices. 3. Improve code quality: AI detects potential problems, provides optimization suggestions, and improves code quality. These methods are implemented through machine learning and natural language processing technologies to help developers improve efficiency and code quality.

Steps to add and delete fields to MySQL tables Steps to add and delete fields to MySQL tables Apr 29, 2025 pm 04:15 PM

In MySQL, add fields using ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column, delete fields using ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop. When adding fields, you need to specify a location to optimize query performance and data structure; before deleting fields, you need to confirm that the operation is irreversible; modifying table structure using online DDL, backup data, test environment, and low-load time periods is performance optimization and best practice.

How to uninstall MySQL and clean residual files How to uninstall MySQL and clean residual files Apr 29, 2025 pm 04:03 PM

To safely and thoroughly uninstall MySQL and clean all residual files, follow the following steps: 1. Stop MySQL service; 2. Uninstall MySQL packages; 3. Clean configuration files and data directories; 4. Verify that the uninstallation is thorough.

What is the significance of the session_start() function? What is the significance of the session_start() function? May 03, 2025 am 12:18 AM

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

See all articles