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['name']. '|'.$row['age'].'<br/>'; } }//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 サイトの他の関連記事を参照してください。