Maison > base de données > tutoriel mysql > le corps du texte

Présentation de PHP + MySQL pour réaliser l'affichage par pagination des données

coldplay.xixi
Libérer: 2021-04-26 09:17:25
avant
2917 Les gens l'ont consulté
Présentation de PHP + MySQL pour réaliser l'affichage par pagination des données
1. Connexion à la base de données
$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');
Copier après la connexion

Recommandations d'apprentissage gratuites associées : tutoriel vidéo mysql

2. Construire une instruction SQL

La pagination est en fait implémentée à l'aide du mot-clé MySQL dans limit. Par exemple, nous interrogeons les deux premiers éléments de données d'une table :

select * from student limit 0, 2
Copier après la connexion
Deux paramètres sont requis après

Le premier paramètre représente le nombre d'éléments à récupérer à la fois ; limit Ensuite, le sens exprimé par l'énoncé
ci-dessus est de partir du 0ème élément et de prendre 2 éléments (en fait, 0 est le 1er élément et le comptage commence à partir de 0). SQL

Nous prenons les deux premières données obtenues comme première page.

Continuez ensuite à récupérer la deuxième page, il y a encore 2 données, alors l'instruction

est : SQL

select * from student limit 2, 2
Copier après la connexion
La troisième page :

select * from student limit 4, 2
Copier après la connexion
Par analogie , on constate que chaque Il y a toujours deux pages, donc le deuxième paramètre de

(soit 2) a été déterminé, alors comment déterminer le premier paramètre ? En fait, les règles sont les suivantes : limit

Page 1 : 0, 2 (La page 1 est prise à partir de la position 0, et 2 sont prises, soit 0 1)

Page 2 : 2 , 2 (La page 2 La page 3 est prise à partir de la position 2, et 2 entrées sont prises, soit 2 3)
Page 3 : 4, 2 (La page 3 est prise à partir de la position 4, et 2 entrées sont pris, soit 4 5)
Page 4 : 6, 2 (La page 4 est prise à partir de la position de 6, et 2 éléments sont pris, soit 6 7)
...

Donc la position de départ de chaque page = (page actuelle - 1) * Affichage de chaque page Nombre d'articles

Page 1 : (1 - 1) * 2 = 0

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

3 Définir le nombre d'éléments affichés sur chaque page
$pageSize = 2;
Copier après la connexion
4. Définir la page actuelle
$page = 1;
Copier après la connexion
5. Calculer selon la formule
Le premier paramètre requis est
$start = ($page - 1) * $pageSize;
Copier après la connexion
limit donc l'instruction SQL est :
select * from student limit $start, $pageSize;
Copier après la connexion

At cette fois, changer la valeur de

permet d'interroger les données de la page correspondante.

$page 6. Passer des paramètres dans la barre d'adresse pour obtenir les

paramètres pour définir la page courante
$page Afin d'être plus flexible, on passe des paramètres dans la barre d'adresse pour obtenir le numéro des pages que vous souhaitez afficher, donc la quatrième étape Le code est modifié en :
if ($_GET['page']) {
	$page = $_GET['page'];} else {
	$page = 1; // 接收不到按照 1 处理,即默认第 1 页}
Copier après la connexion

7. Utilisez les boutons pour contrôler le changement de page

Exécutez l'instruction
:

$sql = "select * from student limit $start, $pageSize";$query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);
Copier après la connexion
SQLAfficher les résultats dans le tableau  :

<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>
Copier après la connexion
HTML Ajouter des boutons de page haut et bas :
<button>上一页</button><button>下一页</button>
Copier après la connexion

En cliquant sur

, nous devons donner la page actuelle

; 上一页 En cliquant sur $page - 1, nous devons donner la page actuelle
;下一页$page + 1 détermine la page précédente en fonction de la page actuelle :

$up = $page - 1;
Copier après la connexion

Supposons que la page actuelle soit page 2, alors

est 2 - 1 = 1, c'est-à-dire que la page précédente est la page 1.

$upDéterminez la page suivante en fonction de la page actuelle :

$next = $page + 1;
Copier après la connexion

Supposons que la page actuelle soit la page 2, alors

vaut 2 + 1 = 3, c'est-à-dire que la page suivante est la page 2 3 pages.

$nextNous ajoutons donc un lien hypertexte vers le bouton, un lien vers la page actuelle, et portons un paramètre

, la valeur est le numéro de page correspondant.

<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a><a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>
Copier après la connexion
pageMais et

ne s'ajoutent ou ne soustraient pas à l'infini Lorsqu'il s'agit déjà de la première page, $up ne peut pas continuer à être soustrait, vous devez donc en ajouter un lors de la détermination de la page précédente. . juge. $next

if ($page == 1) {
	$up = 1;} else {
	$up = $page - 1;}
Copier après la connexion
$upDe même, lors de la détermination de la page suivante, vous devez également porter un jugement. Quand ne pouvez-vous pas passer à la page suivante ? Lorsque la page actuelle est la dernière page, vous ne pouvez pas passer à la page suivante. La façon de déterminer la dernière page dépend du nombre total d'éléments dans le tableau actuel si le tableau actuel contient 10 éléments de données et que chaque page en affiche 2. , alors il doit être divisé en 10/2 = 5 pages, ce 5 est la dernière page. S'il y a 11 données, alors il doit être divisé en 11/2 = 5,5 pages, ce qui signifie qu'il y a 1. morceau restant après avoir été divisé en 5 pages, il est donc divisé en 6 pages directement, c'est-à-dire arrondi, puis Ce 6 est la dernière page.

Trouvez le nombre total d'éléments :

$sql = "select * from student";$query = mysqli_query($connect, $sql);$num = mysqli_num_rows($query);
Copier après la connexion

Selon

et

, trouvez combien de pages sont nécessaires : 总条数

$totalPage = ceil($num / $pageSize);
Copier après la connexion
每页显示的条数 Changez-le donc lorsque vous jugez le page suivante Pour :
if ($page == $totalPage) {
	$next = $totalPage;} else {
	$next = $page + 1;	}
Copier après la connexion

8. Code complet

form-7.php
Copier après la connexion
<?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>
Copier après la connexion
Recommandations d'apprentissage gratuites associées :

base de données mysql (Vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal