search
HomeDatabaseMysql TutorialIntroducing PHP + MySQL to realize paging display of data

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');

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

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

The third page:

select * from student limit 4, 2

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;
4. Define the current page
$page = 1;
5. Calculate according to the formulalimitThe first parameter required
$start = ($page - 1) * $pageSize;

So the SQL statement is:

select * from student limit $start, $pageSize;

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 页}
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);

The results are output to the HTML table:


学生列表
ID 姓名 年龄 性别 手机号

Add up and down page buttons:

<button>上一页</button><button>下一页</button>

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;

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;

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>"><button>上一页</button></a><a>"><button>下一页</button></a>

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;}

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);

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);

So when judging the next page, change it to:

if ($page == $totalPage) {
	$next = $totalPage;} else {
	$next = $page + 1;	}
8. Complete code
form-7.php
<?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);?>nbsp;html>
 
  <meta>
  <meta>
  <meta>
  <meta>
  <meta>
  <title>Document</title>
 
 
	
学生列表
ID 姓名 年龄 性别 手机号
"> ">  

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
This article is reproduced at:CSDN. If there is any infringement, please contact admin@php.cn delete
Adding Users to MySQL: The Complete TutorialAdding Users to MySQL: The Complete TutorialMay 12, 2025 am 12:14 AM

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

Mastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMastering MySQL String Data Types: VARCHAR vs. TEXT vs. CHARMay 12, 2025 am 12:12 AM

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

MySQL: String Data Types and Indexing: Best PracticesMySQL: String Data Types and Indexing: Best PracticesMay 12, 2025 am 12:11 AM

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.

MySQL: How to Add a User RemotelyMySQL: How to Add a User RemotelyMay 12, 2025 am 12:10 AM

ToaddauserremotelytoMySQL,followthesesteps:1)ConnecttoMySQLasroot,2)Createanewuserwithremoteaccess,3)Grantnecessaryprivileges,and4)Flushprivileges.BecautiousofsecurityrisksbylimitingprivilegesandaccesstospecificIPs,ensuringstrongpasswords,andmonitori

The Ultimate Guide to MySQL String Data Types: Efficient Data StorageThe Ultimate Guide to MySQL String Data Types: Efficient Data StorageMay 12, 2025 am 12:05 AM

TostorestringsefficientlyinMySQL,choosetherightdatatypebasedonyourneeds:1)UseCHARforfixed-lengthstringslikecountrycodes.2)UseVARCHARforvariable-lengthstringslikenames.3)UseTEXTforlong-formtextcontent.4)UseBLOBforbinarydatalikeimages.Considerstorageov

MySQL BLOB vs. TEXT: Choosing the Right Data Type for Large ObjectsMySQL BLOB vs. TEXT: Choosing the Right Data Type for Large ObjectsMay 11, 2025 am 12:13 AM

When selecting MySQL's BLOB and TEXT data types, BLOB is suitable for storing binary data, and TEXT is suitable for storing text data. 1) BLOB is suitable for binary data such as pictures and audio, 2) TEXT is suitable for text data such as articles and comments. When choosing, data properties and performance optimization must be considered.

MySQL: Should I use root user for my product?MySQL: Should I use root user for my product?May 11, 2025 am 12:11 AM

No,youshouldnotusetherootuserinMySQLforyourproduct.Instead,createspecificuserswithlimitedprivilegestoenhancesecurityandperformance:1)Createanewuserwithastrongpassword,2)Grantonlynecessarypermissionstothisuser,3)Regularlyreviewandupdateuserpermissions

MySQL String Data Types Explained: Choosing the Right Type for Your DataMySQL String Data Types Explained: Choosing the Right Type for Your DataMay 11, 2025 am 12:10 AM

MySQLstringdatatypesshouldbechosenbasedondatacharacteristicsandusecases:1)UseCHARforfixed-lengthstringslikecountrycodes.2)UseVARCHARforvariable-lengthstringslikenames.3)UseBINARYorVARBINARYforbinarydatalikecryptographickeys.4)UseBLOBorTEXTforlargeuns

See all articles

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

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version