ホームページ  >  記事  >  バックエンド開発  >  PHPでページネーションを行う方法

PHPでページネーションを行う方法

王林
王林オリジナル
2019-09-21 17:56:492684ブラウズ

PHPでページネーションを行う方法

Web サイトでは、リスト ページのコンテンツが多すぎる場合、通常、ページング機能が設定されます。今日は、ページングの原理を学習し、小さなケースを通じてこの機能を実装します。 .

ページ原則

ページ表示では、mysql データベースから取得したデータが通常のセクションに表示され、SQL ステートメント内の制限を使用してそのセクションがバインドされます。開始データからページ数までページ数に基づいてデータベースからデータを決定し、取得します。

例: データベースのテーブル名が list で、各ページから 10 個の情報が取得されるとします。

第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;

このようにして、ページ数を使用してデータを取得する式が得られます。 :

select * from list limit ($page-1)*$pagesize,$pagesize; $page是当前的页数,$pagesize是每页取得条数

必要な知識ポイント
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"); 2 番目のパラメータは SQL ステートメント

1.3, mysqli_num_rows(): データが何個取得されたかを確認します。例: $num = mysqli_num_rows($res);

1.4、mysqli_fetch_assoc()、または mysqli_fetch_row(): からデータを取得します。1 つのデータのフェッチに重点を置き、一度に 1 つのデータのみをフェッチします。フェッチ後、ポインタは次のデータを指します。たとえば、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 - 在散列符号 # 之后

実装プロセス:

1. 現在の URL 文字列を取得し、parse_url を使用して解析して URL 配列を取得します

2. サーバーに接続し、表示するコンテンツ コレクションを取得しますリスト ページ、表示されるアイテムの総数を数え、コンテンツの総ページ数を計算します

3。ページが送信されるかどうかを決定します。送信されない場合は、デフォルトで最初のページ $pageval

4. 計算された制限開始位置を変数 $page

5. $page を使用し、$ pageSize がデータベースにアクセスしてデータを取得します

6. ループします。データ収集が行われ、出力がページに表示されます。

特定のコード:

$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;?>页

推奨チュートリアル: PHP ビデオ チュートリアル

以上がPHPでページネーションを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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