Maison  >  Article  >  développement back-end  >  À propos de l'implémentation de la fonction de pagination PHP

À propos de l'implémentation de la fonction de pagination PHP

藏色散人
藏色散人original
2020-07-22 09:52:222697parcourir

Comment implémenter la fonction de pagination PHP : utilisez d'abord "parse_url" pour analyser le tableau d'url ; puis obtenez la page de liste et collectez le contenu à afficher, puis attribuez la position de départ limite calculée à la variable $page ; ; Enfin, utilisez $page et $pageSize pour récupérer les données de la base de données et les afficher pour les afficher.

À propos de l'implémentation de la fonction de pagination PHP

Implémentation de la fonction de pagination PHP

Dans un site web, s'il y a trop de contenu dans la page de liste, la pagination est généralement une fonction configurée, aujourd'hui nous allons étudier ensemble le principe de la pagination et implémenter cette fonction à travers un petit cas

Recommandé : "Tutoriel PHP"

Principe de pagination

Affichage des pages, les données extraites de la base de données mysql sont affichées dans des sections régulières. Utilisez la limite dans l'instruction sql pour lier ses données de départ au nombre de pages et récupérer le nombre de pages. 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 soit une liste et récupérez 10 informations de chaque page

    第1页    select * from list limit 0,10;
    第2页   select * from list limit 10,10;
    第3页   select * from list limit 20,10;

De ce point de vue, la nième page est sélectionnée * dans la limite de la liste (n-1)*10,10 ;

De cette façon, nous obtenons une formule pour obtenir des données en utilisant le nombre de pages :

sélectionnez * dans limite de liste ($page-1)*$pagesize,$pagesize; $page est le nombre actuel de pages, $pagesize est le nombre d'éléments par page

Points de connaissances nécessaires

1.基本的操作数据库函数
1.1 mysqli_connect();连接数据库,例如$link = mysqli_connect('127.0.0.1','root',12345678,'bbs'); 
1.2 mysqli_query():获取数据 例如$res = mysqli_query($link,"select * from list");第二个参数为sql语句
1.3 mysqli_num_rows():查看获取了多少条数据 例如 $num = mysqli_num_rows($res);
1.4 mysqli_fetch_assoc(),或者mysqli_fetch_row():从获取的数据集中取一条数据,每次只取一条,取完指针就指向下一条. 例如mysqli_fetch_assoc($res),除了fetch_assoc,fetch_row还有fetch_array,他们具体的区别请参考手册
1.5 limit 操作数据库中数据的,limit 开始位置,操作条数 例如从数据库中取数 select * from list limit 10,10;
2.其他相关知识
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

1. Obtenez la chaîne d'URL actuelle et utilisez parse_url pour analyser afin d'obtenir le tableau d'URL

2. Connectez-vous au serveur, obtenez la collection de contenu à afficher sur la page de liste. , comptez le nombre total d'éléments affichés, puis calculez le nombre total de pages de contenu

3. Déterminez si la page est en état de soumission, sinon La valeur par défaut est la première page $pageval

4. Attribuez la position de départ de la limite calculée à la variable $page

5. Utilisez $page et $pageSize pour récupérer les données de la base de données

6. la sortie est affichée sur la page

Le code spécifique est le suivant

$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[&#39;name&#39;]. &#39;|&#39;.$row[&#39;age&#39;].&#39;<br/>&#39;;
    }
}
//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!

Déclaration:
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