ホームページ >バックエンド開発 >PHPチュートリアル >PHP を MySQL と組み合わせてネイティブ ページングを実装する

PHP を MySQL と組み合わせてネイティブ ページングを実装する

韦小宝
韦小宝オリジナル
2018-01-29 10:04:172129ブラウズ

PHP 開発では、

フレームワーク がますます広く使用されていることがわかります。フレームワークが使用されすぎると、徐々に過去のものになってしまいます。基本的なものを過去のものにしないでください。 !私たちの記事は、PHP と MySQL を組み合わせてネイティブ ページングを実装する方法についてです。現在、一般的なフレームワークで ページネーション クラス がカプセル化されているため、手動で記述する必要はありません。しかし、何もすることがないときは、コーディング スキルを書いて練習することができます。 PHP+MYSQL ページングは​​主に SQL ステートメントの制限に基づいて実装されます。

limit ステートメント:

select * from table limit `limit`,`offset`;

制限はページングのページ数、オフセットは各ページに表示される項目の数と考えることができます。

実装効果は図に示すとおりです:


PHP を MySQL と組み合わせてネイティブ ページングを実装するこれは単なるコード例であり、主にページング関数、ページ効果などを実装します。これに関連する特別なデバッグはありません。

主な機能は次のとおりです: ホーム ページ、最後のページ、前のページ、次のページ、合計ページ統計、現在のページの位置決め、デジタル表示、最大 4 つ、残りは次のように表されます。

具体的なコード実装:

ここは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;
?>
ローカルで練習できます!理解できないならもっと練習したほうがいいよ!こういう基本的なことを忘れてしまうと、また取り戻すのが大変になってしまいます! !

関連する推奨事項:


phpページングクラスの実装

今日は、使いやすく美しいphpページングクラスを共有します。

PHPページングの実装原理

今日は、PHPページングの原理を分析します。

ユニバーサル PHP ページング クラスのサンプル コード

この記事では、特に使いやすいユニバーサル PHP ページング クラスを主に紹介します。PHP ページング クラスを使用する必要がある友人は見逃さないでください。

効果を実現するための Thinkphp ページング

大量のデータを表示するには、コンテンツのページネーションが必要です。この記事は、整理が必要な友人が一緒に学習できるようにするための thinkphp ページングを紹介します。

以上がPHP を MySQL と組み合わせてネイティブ ページングを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。