Maison > Article > développement back-end > Comment paginer en PHP
Dans un site Web, s'il y a trop de contenu dans la page de liste, la fonction de pagination est généralement mise en place. Aujourd'hui, nous allons étudier le principe de la pagination et implémenter cette fonction à travers un petit cas. .
Principe de la page
Affichage de la page, les données extraites de la base de données mysql sont affichées dans des sections régulières et la limite dans l'instruction sql est utilisée pour lier ses données de départ au nombre de pages Déterminez et récupérez les données de la base de données en fonction du nombre de pages.
Par exemple : supposons que le nom de la table de la base de données est une liste et que 10 informations sont extraites de chaque page
第1页 select * from list limit 0,10; 第2页 select * from list limit 10,10; 第3页 select * from list limit 20,10; 由此观之第n页 是select * from list limit (n-1)*10,10;
De cette façon, nous obtenons une formule pour récupérer des données en utilisant le nombre de pages :
select * from list limit ($page-1)*$pagesize,$pagesize; $page是当前的页数,$pagesize是每页取得条数
Points de connaissances requis
1. Fonctions de base de fonctionnement de la base de données
1.1, mysqli_connect(); par exemple $link = mysqli_connect('127.0.0.1 ','root',12345678,'bbs');
1.2. mysqli_query() : Par exemple, $res = mysqli_query($link, "select * from list"); Le deuxième paramètre est l'instruction sql
1.3, mysqli_num_rows() : Vérifiez combien de données ont été obtenues. Par exemple, $num = mysqli_num_rows($res); >
1.4, mysqli_fetch_assoc() ou mysqli_fetch_row() : récupérez les données en vous concentrant sur la récupération d'un élément de données, en récupérant un seul élément à la fois. Après la récupération, le pointeur pointe vers l'élément suivant. Par exemple, mysqli_fetch_assoc($res), en plus de fetch_assoc, fetch_row a également fetch_array1.5, la limite est utilisée pour exploiter les données dans la base de données, la limite est la position de départ et le nombre d'opérations est, pour exemple, récupérer des numéros dans la base de données, sélectionner * dans la limite de liste 10,10 ;2 Autres connaissances connexes
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 - 在散列符号 # 之后
Processus de mise en œuvre :
4. Attribuez la position de départ de la limite calculée à la variable $page
5. Utilisez $page et $pageSize va à la base de données pour obtenir des données
6. Parcourez les données. collection facilement, et la sortie est affichée sur la page
Code spécifique :$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'].'<br/>'; } }//html添加页数部分<a href="?page=1">1</a>; <a href="?page=2">2</a>; <a href="?page=3">3</a>; <a href="?page=4">4</a>; <a href="?page=5">5</a>; 总共<?php echo $pageNum; ?>页,当前在<?php echo $pageVal;?>页
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!