PHP combiné avec MySQL pour implémenter la pagination native

韦小宝
Libérer: 2023-03-19 17:52:02
original
2080 Les gens l'ont consulté

Dans le développement PHP, les frameworks semblent être de plus en plus largement utilisés, moins les pratiques natives appartiendront au passé. J'espère que tout le monde n'abandonnera pas les choses fondamentales du passé ! Notre article concerne PHP combiné avec MySQL pour implémenter la pagination native, et désormais les frameworks généraux encapsulent la classe de pagination, vous n'avez donc pas besoin de l'écrire manuellement. Mais lorsque vous n’avez rien à faire, vous pouvez essayer de l’écrire et exercer vos compétences en codage.

La pagination PHP+MYSQL est principalement implémentée en fonction de la limite de l'instruction SQL.

Déclaration de limite :

select * from table limit `limit`,`offset`;
Copier après la connexion

Vous pouvez considérer la limite comme le nombre de pages à paginer et le décalage comme le nombre d'éléments affichés sur chaque page.
L'effet d'implémentation est comme indiqué dans la figure :

PHP combiné avec MySQL pour implémenter la pagination native

Ceci est juste un exemple de code, qui implémente principalement la fonction de pagination , effets de page, etc. Il n'y a pas de débogage spécial .

Les principales fonctions sont : page d'accueil, dernière page, page précédente, page suivante, statistiques totales de la page, positionnement de la page en cours, affichage numérique, jusqu'à quatre, et le reste est représenté par....

Implémentation de code spécifique :
Voici la base de données exploitée par PDO

<?php
header("Content-type:text/html;charset=utf-8");
// 1、传入页码
 $page = $_GET[&#39;p&#39;];

// 2、根据页码取出数据
$pdo = new PDO(&#39;mysql:host=localhost;dbname=ceshi&#39;,&#39;root&#39;,&#39;root&#39;);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

$sql = &#39;SELECT * FROM `goods` LIMIT :start,:offset&#39;;
$limit = ($page-1)*3;
$offset = 3;
$stmt = $pdo->prepare($sql);
$sqlnum = &#39;SELECT COUNT(*)FROM `goods`&#39;;
$stmtnum = $pdo->prepare($sqlnum);
$stmtnum->execute();
$num = $stmtnum->fetch(PDO::FETCH_ASSOC);
$stmt->bindParam(&#39;:start&#39;,$limit);
$stmt->bindParam(&#39;:offset&#39;,$offset);
if(!$stmt->execute()){
            throw new Exception(&#39;查找失败&#39;,1);
        }
 $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($data);

// 3、显示数据+显示分页条
/**总页数**/
$end = floor($num[&#39;COUNT(*)&#39;]/$offset)+1;

$page_banner =&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=1">   首页</a>&#39;;
if($page <=1){
    $page_banner .= &#39;<a style="color:#B8BBB3;">   上一页</a>&#39;;
}else{
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page -1).&#39;">   上一页</a>&#39;;
}
if($page+3>4){
    $page_banner .= &#39;...&#39;;
}
if(($page+4)>=$end){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-3).&#39;">   &#39;.($end-3).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-2).&#39;">   &#39;.($end-2).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end-1).&#39;">   &#39;.($end-1).&#39;</a>&#39;;
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($end).&#39;">   &#39;.($end).&#39;</a>&#39;;
}else{
    for($i=0;$i<4;$i++){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page+$i).&#39;">   &#39;.($page+$i).&#39;</a>&#39;;
    }
}

if(($page+4)<$end){
    $page_banner .= &#39;...&#39;;
}

if($page <=$num[&#39;COUNT(*)&#39;]/$offset){
    $page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.($page +1).&#39;">    下一页</a>&#39;;
}else{
    $page_banner .=&#39;<a style="color:#B8BBB3;">   下一页</a>&#39;;
}

$page_banner .=&#39;<a href="&#39;.$_SERVER[&#39;PHP_SELF&#39;].&#39;?p=&#39;.$end.&#39;">     尾页</a>&#39;;

$page_banner .=&#39;<span>   总共&#39;.$end.&#39;页</span>   当前第<span>&#39;.$page."页</span>";
echo $page_banner;
?>
Copier après la connexion

Vous pouvez la pratiquer localement ! Si vous ne comprenez pas, vous devriez pratiquer davantage ! Si vous oubliez ces choses de base, il sera difficile de les reprendre ! !

Recommandations associées :

Implémentation de la classe de pagination PHP

Aujourd'hui, je vais partager avec vous une classe utile Belle classe de pagination php !

Le principe de mise en œuvre de la pagination php

Aujourd'hui je vais vous emmener analyser le principe de la pagination php.

Un exemple de code de classe de pagination PHP universelle

Cet article présente principalement la classe de pagination PHP universelle, qui est particulièrement facile à utiliser. Amis qui ont besoin d'utiliser la classe de pagination PHP. Ne le manquez pas.

Effet de mise en œuvre de la pagination thinkphp

Pour afficher une grande quantité de données, le contenu doit être paginé Cet article vise à présenter la pagination thinkphp pour les amis dans le besoin. pouvons en apprendre ensemble une fois.

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!