Comment paginer en PHP

王林
Libérer: 2023-02-24 16:16:01
original
2682 Les gens l'ont consulté

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;
Copier après la connexion

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是每页取得条数
Copier après la connexion

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_array

1.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 - 在散列符号 # 之后
Copier après la connexion

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. 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 soumise. 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 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[&#39;REQUEST_URI&#39;];
$url = parse_url($url);
$url = $url[&#39;path&#39;];
$pageSize = 4;//连接服务器$link = mysqli_connect(&#39;127.0.0.1&#39;,&#39;root&#39;,12345678,&#39;bbs&#39;);
$res = mysqli_query($link,&#39;select * from fenye&#39;);
$num = mysqli_num_rows($res);
$pageNum = ceil($num/$pageSize);//判断页面是否是提交状态if ( isset($_GET[&#39;page&#39;]) && $_GET[&#39;page&#39;] >1) {
    $pageVal = $_GET[&#39;page&#39;];
}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;?>页
Copier après la connexion

Tutoriel recommandé : Tutoriel vidéo PHP

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!