ホームページ > バックエンド開発 > PHPチュートリアル > PHP@MYSQL ページング原理と実装_PHP チュートリアルについて静かに話します。

PHP@MYSQL ページング原理と実装_PHP チュートリアルについて静かに話します。

WBOY
リリース: 2016-07-13 10:59:35
オリジナル
805 人が閲覧しました

PHPとMYSQLのページング原理と実装について静かに話します

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

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

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

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

テーブル制限 0,10 から * を選択

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

このセクションの「limit 0,10」がポイントで、この中の0は0を始点として、次の10は10個のデータを表示することになります。そして、10を始点として表示する必要があります。 20枚目まではどのように書けばよいでしょうか?

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

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

制限 0,10 リミット 10,10 //2 ページ目

制限 20,10 //ページ 3
制限 30,10 //ページ 4

何かパターンが見えますか?はい、最初のパラメータはページをめくるたびに 10 ずつ増加しますが、2 番目のパラメータは変更されません。
つまり、最初のパラメータの値をページ数に応じて変更してみると、ページ単位で表示できるのですが、原理は非常にシンプルです。

しかし、ページ数に応じて最初のパラメータの値を変更するにはどうすればよいでしょうか?まず、ページ番号の値が必要です。これは、URL の GET メソッドを使用して取得できます。

たとえば、index.php?page=18

この種の URL アドレスはどこでも見られるので、ほとんどの方がご存知だと思います。page パラメーターの機能は、表示するページ数を渡すことです。

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

PHP コンテンツをクリップボードにコピーする PHP コード:


/*

作者:サイレント

日付:2006-12-03


*/

$page=isset($_GET['page'])?intval($_GET['page']):1; //この文は page=18 の page の値を取得します。次にページ番号は 1 です。

$ num = 10;

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

/*
まず、データベースを何ページに分割する必要があるかを決定するために、データベース内にどれだけのデータがあるかを取得する必要があります。具体的な式は

です。 データの総数を各ページに表示される項目数で割った余りは 1 に四捨五入されます。

つまり、10/3=3.3333=4 余りがある場合は、1 を追加する必要があります。
*/

$total=mysql_num_rows(mysql_query("select id from table")); //データの総数をクエリします。id はデータベース内で自動的に割り当てられるフィールドです
$pagenum=ceil($total/$num);

//渡されたページ番号パラメータが総ページ数より大きい場合、エラーメッセージが表示されます
$totalrecord=mysql_num_rows($result);
$pagesize=10;
$page=isset($_GET['ページ'])?$_GET['ページ']:1; $pagecount=($totalrecord % $pagesize==0)?$totalrecord / $pagesize:(int) ($totalrecord / $pagesize)+1;
$page=($page>$pagecount || $page<1 )?1:$page;
$start=$pagesize*($page-1);
$res=mysql_query("select * from tablename order by ID desc limit $start,$pagesize")

//対応するページ番号に表示する必要があるデータを取得します。名前はデータ内のフィールドです

While($rsmysql_fetch_array($res)){
エコー $rs['name']."
";
} なぜなら
以下で使用するため、詳細は説明しません。他にもたくさんの方法がありますが、それらは不可欠です。
/*ページング情報を表示します。現在のページの場合は太字で表示されます。3ページ目の場合は次のように表示されます。 1 2 3 4 5 6
*/

?>


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

http://www.bkjia.com/PHPjc/631898.html

www.bkjia.com

http://www.bkjia.com/PHPjc/631898.html技術記事 PHPMYSQL ページングの原則と実装について静かに話します。この記事を読む前に、PHP と MYSQL クエリ操作の基本についてある程度の知識を習得していることを確認してください。 Web プログラムとして、私たちはしばしば次のことに対処しなければなりません...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート