ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルのページング ソースとページング クラス
いわゆるページング表示とは、データベース内の結果セットを表示のために人為的にセクションに分割することを意味します。ここでは 2 つの初期パラメーターが必要です。 1 ページあたりのレコード数 ($PageSize)?
現在どのページにありますか ($CurrentPageID)?
ここで、別の結果セットを与えるだけで、特定の結果を表示できます。
前のページ ($PReviousPageID)、次のページ ($NextPageID)、総ページ数 ($numPages) などの他のパラメーターについては、すべて前述の内容に基づいて取得できます。
MySQL データベースを例にとると、テーブルから特定のコンテンツをインターセプトしたい場合は、SQL ステートメントを使用できます: select * from table limit offset, rows。次の一連の SQL ステートメントを見て、ルールを見つけてください。
最初の 10 レコード: select * from tablelimit 0,10
レコード 11 ~ 20: * テーブル制限 10,10 から選択
レコード 21 ~ 30: * テーブル制限 20,10 から選択
…
この SQL ステートメントのセットは、実際には、$PageSize=10 の場合にテーブル内の各ページからデータをフェッチするための SQL ステートメントです。このようなテンプレートを要約すると、次のようになります。
select * テーブル制限から ($CurrentPageID – 1) * $PageSize, $PageSize
このテンプレートを使用し、対応する値を上記の一連の SQL ステートメントに代入して、そのとおりであるかどうかを確認してください。データを取得する方法という最も重要な問題を解決したら、あとはパラメータを渡し、適切な SQL ステートメントを作成し、PHP を使用してデータベースからデータを取得して表示するだけです。以下、具体的なコードを用いて説明していきます。
3. 簡単なコード
次のコードを詳しく読んで、自分でデバッグして実行してください。コードを変更して、検索などの独自の機能を追加するのが最善です。
[php]
コードをコピー | |||||||||
// データベース接続を確立します $link = mysql_connect(“localhost”, “mysql_user”, “mysql_passWord”) または die(“接続できませんでした: ” .mysql_error()); // 現在のページ番号を取得します if( isset($_GET['page']) ){ $page = intval( $_GET['page'] ); } 他{ $ページ = 1; } //ページごとの数量 $PageSize = 10; // 総データ量を取得します $sql = “テーブルから金額として count(*) を選択”; $result = mysql_query($sql); $row = mysql_fetch_row($result); $amount = $row['amount']; // 合計ページ数を計算します if( $amount ){ if($< $ page_size){$ page_count = 1; if($額%$ page_size){ $page_count = (int)($amount / $page_size) + 1; // 余りがある場合、ページ数は合計データ量をページあたりのページ数で割って切り上げて 1 を加えたものになります }その他{ $ page_count = $ amount /$ page_size; // これ以上の数値がない場合、ページ数は合計データ量を各ページの結果で割ったものと等しくなります。 } } 他{ $page_count = 0; } // ページめくりリンク $page_string = ”; if( $page == 1 ){ $page_string .= ‘最初のページ|前のページ|’; } 他{ $page_string .= '最初のページ|前のページ a>|' ; } if( ($page == $page_count) || ($page_count == 0) ){ $page_string .= ‘次のページ|最後のページ’; } 他{ $page_string .= '次のページ| ;/a>'; } // データを取得し、結果を 2 次元配列形式で返します if( $amount ){ $sql = “select * from table order by id desc limit”. ($page-1)*$page_size .”, $page_size”; $result = mysql_query($sql); while ( $row = mysql_fetch_row($result) ){ $rowset[] = $row; } }その他{
$rowset = array(); PHP ページネーターの作成、ファセット ページ番号を自動的に生成、JS が関数を呼び出します
PHP调用
|