Maison > Article > base de données > Présentation de PHP + MySQL pour réaliser l'affichage par pagination des données
$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');
Recommandations d'apprentissage gratuites associées : tutoriel vidéo mysql
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, 2Deux 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
est : SQL
select * from student limit 2, 2La troisième page :
select * from student limit 4, 2Par 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 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)
...
Page 2 : ( 2 - 1) * 2 = 2
Page 3 : (3 - 1) * 2 = 4
…
$pageSize = 2;4. Définir la page actuelle
$page = 1;
$start = ($page - 1) * $pageSize;
limit
donc l'instruction SQL est : select * from student limit $start, $pageSize;
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
$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 页}
7. Utilisez les boutons pour contrôler le changement de page
$sql = "select * from student limit $start, $pageSize";$query = mysqli_query($connect, $sql);$result = mysqli_fetch_all($query, MYSQLI_ASSOC);
SQL
Afficher 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['id']; ?></td> <td><?php echo $v['name']; ?></td> <td><?php echo $v['age']; ?></td> <td><?php echo $v['sex']; ?></td> <td><?php echo $v['mobile']; ?></td> </tr> <?php } ?></table>
HTML
Ajouter des boutons de page haut et bas : <button>上一页</button><button>下一页</button>
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;
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.$up
Déterminez la page suivante en fonction de la page actuelle :
$next = $page + 1;
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.$next
Nous ajoutons donc un lien hypertexte vers le bouton, un lien vers la page actuelle, et portons un paramètre
<a href="form-7.php?page=<?php echo $up; ?>"><button>上一页</button></a><a href="form-7.php?page=<?php echo $next; ?>"><button>下一页</button></a>
page
Mais 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;}
$up
De 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);
Selon
et, trouvez combien de pages sont nécessaires : 总条数
$totalPage = ceil($num / $pageSize);
每页显示的条数
Changez-le donc lorsque vous jugez le page suivante Pour : if ($page == $totalPage) { $next = $totalPage;} else { $next = $page + 1; }
8. Code complet
form-7.php
<?php// 连接数据库$connect = mysqli_connect('localhost', '用户名', '密码', '数据库名') or die('数据库连接失败');mysqli_set_charset($connect, 'utf8');// 查询总条数$sql = "select * from student";$query = mysqli_query($connect, $sql);// 返回结果集中行的数量$num = mysqli_num_rows($query);// 定义每页显示几条$pageSize = 2;// 一共分几页$totalPage = ceil($num / $pageSize);// 获取当前页if ($_GET['page']) { $page = $_GET['page'];} 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['id']; ?></td> <td><?php echo $v['name']; ?></td> <td><?php echo $v['age']; ?></td> <td><?php echo $v['sex']; ?></td> <td><?php echo $v['mobile']; ?></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>
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!