ホームページ  >  記事  >  PHPフレームワーク  >  thinkphpでページング機能を実装する方法は何ですか?

thinkphpでページング機能を実装する方法は何ですか?

王林
王林転載
2023-05-27 22:29:201228ブラウズ

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ページあたり。

次に、ページング ナビゲーション バーをテンプレート ページに追加する必要もあります。 ThinkPHP では、次の例に示すように、

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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。