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

王林
リリース: 2023-05-27 22:29:20
転載
1198 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!