1. ページングの原理
ThinkPHP のページング機能を紹介する前に、まずページングの基本原理を理解しましょう。
Web サイトのコンテンツは豊富でカラフルですが、大量のデータを含むコンテンツの場合、1 ページに配置するとページの読み込みが遅くなり、ユーザー エクスペリエンスに影響を与え、また読み込み速度も増加します。データ管理の難しさ。したがって、ページングはこの問題を解決する一般的な方法となっています。
データのページングの基本原理は、データを複数のページに分割し、各ページに固定量のデータを表示することです。通常、ページングには 2 つの方法があります。1 つは SQL ステートメントに基づくページングで、もう 1 つは配列に基づくページングです。
2. SQL ベースのページング
ThinkPHP では、ページングは SQL ステートメントに基づいて実装されます。 ThinkPHP が提供するlimit
メソッドを使用して、ページング クエリを実装できます。以下は簡単な例です:
//获取分页数据,每页显示10条数据 $users = Db::name('user')->order('id desc')->limit(10)->select();
上記のコードでは、Db::name('user')
はuser
テーブルのデータのクエリを表します。 ##order ('id desc')ステートメントは
idフィールドに従って降順に並べ替えることを意味し、
limit(10)は 10 個のデータを表示することを意味します1ページあたり。
paginateメソッドを使用してページネーション ナビゲーション バーを生成できます。
//每页显示10条数据 $users = Db::name('user')->paginate(10); //将分页数据赋值到模板中 $this->assign('users', $users); //在模板中输出分页数据 {{$users|raw}}
paginate(10)は各ページを表します。10 個のデータを表示します。
$this->assignメソッドを使用してページング データをテンプレートに割り当て、
{{$users|raw}}コードはページング データを出力するために使用されます。このようにして、ページ上にページング ナビゲーション バーを表示できます。
3. 配列ベースのページング
SQL ベースのページングに加えて、ThinkPHP は配列ベースのページングも提供します。ほとんどの場合、配列ベースのページングは SQL ベースのページングよりも柔軟です。 ThinkPHP では、次の例に示すように、array_slice関数を使用して配列ベースのページングを実装できます。
//数据总数 $count = count($data); //每页显示10条数据 $pagesize = 10; //当前页 $page = input('page', 1); //计算总页数 $pagecount = ceil($count / $pagesize); //起始位置 $start = ($page - 1) * $pagesize; //获取当前页的数据 $list = array_slice($data, $start, $pagesize); //将分页数据赋值到模板中 $this->assign('list', $list); //在模板中输出分页数据 {{$list|raw}}
count($ data)はデータの総数を表し、
$pagesizeは各ページに表示されるデータの量を表し、
input('page', 1)はデータの取得を表します。現在のページ番号 (取得されていない場合) デフォルトは最初のページです。
ceil($count / $pagesize)は総ページ数を表します。
($page - 1) * $pagesizeは開始位置を表し、最後に
を使用します。 array_slice関数は、現在のページのデータを取得します。次に、ページング データをテンプレートに割り当て、
{{$list|raw}}を使用してページング データを出力します。
以上がthinkphpでページング機能を実装する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。