ホームページ バックエンド開発 PHPチュートリアル PHP&MYSQLのページング原理と実装_PHPチュートリアルについて黙って語る

PHP&MYSQLのページング原理と実装_PHPチュートリアルについて黙って語る

Jul 21, 2016 pm 03:57 PM
amp mysql php ページネーション 原理 成し遂げる マスター 確認する

この記事を読む前に、PHP の知識と MYSQL クエリ操作の基本を習得していることを確認してください。

Webプログラムとしては、会員データや記事データなど無数のデータを扱うことが多いですが、会員数が数十人程度であれば1ページに表示することも可能です。 Web サイトに何千人、あるいは何十万人ものメンバーがいる場合、すべてのメンバーを 1 つのページで開くと、ブラウザーと閲覧者の両方にとって拷問になります。

PHP を学習する初心者は誰でもページネーションについて頭を悩ませることになると思いますが、Momo の投稿を読めば、きっと頭を撫でて「ページネーションがとても簡単だったことが分かりましたね?」と言うでしょう。実際、今すぐ新鮮な空気を深呼吸して、サイレンスが少しずつ説明するのを注意深く聞いてください。

1,000個のデータを処理して各ページに10個ずつ表示したいとします。この場合、まずmysqlで10個の情報を抽出する方法を見てみましょう。

Select * from table limit 0,10

上記は非常に単純な mysql クエリステートメントであり、その機能は table という名前のテーブルから 10 個のデータを抽出し、すべてのフィールドの値を取得することです。

このセクションの「limit 0,10」がポイントです。この中の 0 は 0 を開始点として、次の 10 は 10 個のデータを表示することを意味します。そして、10 を開始点として使用する必要があります。 20日まで表示 データを書き込むには?

おそらく多くの人は「10、20 個まで」とはっきり言うでしょう。ああ、これは間違っています。正しい書き方は「limit 10,10」です。この後のパラメータは終了点ではなく、抽出される数値です。

10 個のデータを抽出する方法がわかりました。1,000 個のデータを抽出するには、この種のクエリを 100 回実行する必要があります。つまり、次のクエリを実行する必要があります:

Limit 0,10ページ 2 ilimit 20,10 // 3 ページ目
limit 30,10 // ページ 4
...
ルールはありますか?はい、最初のパラメータはページをめくるたびに 10 ずつ増加しますが、2 番目のパラメータは変更されません。
つまり、ページ数に応じて最初のパラメータの値を変更してみると、ページ単位でデータを表示できるということになりますが、原理はとても簡単でしょうか?

しかし、ページ数に応じて最初のパラメータの値を変更するにはどうすればよいでしょうか?まず、ページ番号の値が必要です。これは、URL の GET メソッドを使用して取得できます。
たとえば、index.php?page=18
この種の URL アドレスはどこでも見られるので、ほとんどの人がよく知っていると思います。page パラメーターの機能は、表示するページ数を渡すことです。 。

コードの一部を通じてそれがどのように実装されるかを見てみましょう:





コードをコピーします コードは次のとおりです:

/*

著者:silently
日付:2006-12-03

*/

$page=isset($_GET['page'])?intval($_GET['page' ]):1; //この文は、page=18 のページの値を取得します。ページが存在しない場合、ページ番号は 1 です。 = $ Num = 10; // 1 ページあたり 10 個のデータを表示します

$ db = mysql_connect ("host", "name", "pass") // データベース接続を作成します
$ select = MySQL_SELECT_DB ("DB", $ db); // 操作するデータベースを選択します

/*
まず、データベースを何ページに分割する必要があるかを決定するために、データベース内にどれだけのデータがあるかを取得する必要があります。具体的な計算式は
の合計数です。データを各ページに表示されるアイテム数で割ると、十分すぎる量になります。
つまり、10/3=3.3333=4 余りがある場合は、1 ずつ切り上げなければなりません。
*/

$total=mysql_num_rows(mysql_query("select * from table")); // クエリデータの総数
$pagenum=ceil($total/$num); // ページ番号パラメータの場合渡されたページが合計ページ数より大きい場合、エラー メッセージが表示されます
If($page>$pagenum || $page == 0){
Echo "Error: Can Not Found The page .";終了します。

$offset=($page-1)*$num; -1)*10=10。

$info=mysql_query("select * from table limit $offset,$num"); //対応するページ番号に表示するデータを取得します
while($it=mysql_fetch_array($info)){
Echo $それ[ '名前']."
";

$show=($i!= $page)?"$i":"$i";
Echo $ show." "; 現在のページの場合、ページング情報を表示します。残りのページ番号は太字で表示されます。 現在のページが 3 ページ目の場合、
*/



と表示されます。上記のコードを注意深く読み、データベース接続とクエリ テーブルを実際のものに置き換えると、その実行効果がわかります。

とても簡単ではないでしょうか? 頭を使えば、よりパーソナライズされた表示にすることができます。「ホームページ、前のページ、次のページ、」の形式でページングを実装する方法です。最後のページ"?

OK、水柱を満たし終えたら、もう終わりにしましょう。 ^_^



コードをコピーします
コードは次のとおりです:


/*

作成者:silently
日付:2006-12-03

*/

$page=isset($_GET['page'])?intval($_GET['page ']):1; //この文は、page=18 のページの値を取得するものです。ページが存在しない場合、ページ番号は 1 です。 = $ Num = 10; // 1 ページあたり 10 個のデータを表示します

$ db = mysql_connect ("LocalHost", "ROOT", "7529639"); // データベース接続を作成します
Mysql_SELECT_DB ("CR_DOWNLOAD");操作するデータベース

/*
まず、データベースを何ページに分割する必要があるかを決定するために、データベース内にどのくらいのデータがあるかを取得する必要があります。具体的な計算式は、
データベースの合計を数値で割ったものです。各ページに表示される項目の合計数を切り捨て、余りを 1 で四捨五入します。
つまり、10/3=3.3333=4 余りがある場合は、1 ずつ切り上げなければなりません。
*/

$result=mysql_query("select * from cr_userinfo");
$total=mysql_num_rows($result); //すべてのデータをクエリします

$url='test.php';//このページの URL を取得します

//ページ番号calculation $ pagenum = ceil($ total/$ num); ;//次のページ
$offset=($page-1)*$num ;

//ページング ナビゲーション バーコードの開始:
$pagenav="ページを表示 ".($total?($offset+1):0)."-"。 min($offset+10,$total)." records, total $total records ";


//ページが 1 つしかない場合は、関数から抜けます:
if($pagenum<= 1) false を返します

$pagenav.=" ホームページ "; '$ url?page=$prepg'>前のページ "; else $pagenav.=" 前のページ ";
if($nextpg) $pagenav.=" 次のページ "; else $pagenav.=" 次のページ ";
$pagenav.=" 最後のページ< a> ";

//ドロップダウン ジャンプ リスト、すべてのページ番号をループします:
$pagenav.=" ページに移動 ページ, 合計 $pagenum ページ";

//渡されたページ番号パラメーターが合計ページ数より大きい場合、エラー メッセージが表示されます
If($page> $pagenum){
Echo " エラー: ページが見つかりません ".$page
}

$info=mysql_query("select * from cr_userinfo limit $offset,$num");これは、対応するページ番号に表示する必要があります
While($it=mysql_fetch_array($info)){
. // データを表示
echo "
"
echo $pagenav ;// ページングナビゲーションを出力

?>


ところで、実際のアプリケーションでは、リストに関してはほとんどの場合ページングが使用されます。そうすれば、ページングが必要なときにいつでもこの関数を呼び出すことができます。

http://www.bkjia.com/PHPjc/317716.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/317716.html技術記事この記事を読む前に、PHP の知識と MYSQL クエリ操作の基本を習得していることを確認してください。 Web プログラムとして、メンバーなどの無数のデータを処理する必要があることがよくあります...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

PHPの現在のステータス:Web開発動向を見てください PHPの現在のステータス:Web開発動向を見てください Apr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP:多くのウェブサイトの基礎 PHP:多くのウェブサイトの基礎 Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

See all articles