-
-
//データベース接続を確立します - $link = mysql_connect("localhost", "mysql_user", "mysql_passWord")
- or die("接続できませんでした: " . mysql_error ());
// 現在のページ番号を取得します
- if( isset($_GET['page']) ){
- $page = intval( $_GET['page'] ) ;
- }
- else{
- $page = 1;
- }
// 1 ページあたりのページ数
- $PageSize = 10;
//データの合計量
- $sql = "テーブルから量として count(*) を選択";
- $result = mysql_query($sql);
- $row = mysql_fetch_row($result);
- $amount = $row['amount '];< /p>
// 合計ページ数を計算します
- if( $amount ){
- if( $amount < $page_size ){ $page_count = 1;総データ量が $PageSize 未満の場合、ページは 1 つだけです
- if( $amount % $page_size ){ //総データ量をページ数で割った余りを求めます
- $page_count = (int)( $amount / $page_size) + 1; //余りがある場合、ページ数は合計データ量を各ページの数で割って切り上げて 1 を加えたものになります
- }else{
- $page_count = $amount / $page_size; //余りがない場合、ページ数は総データ量を各ページで割った結果になります
- }
- }
- else{
- $page_count = 0;
- }< /p>
// ページめくりリンク
- $page_string = '';
- if( $page == 1 ){
- $page_string .= '最初のページ|前のページ|';
- }
- else{
- $page_string .= '最初のページ|前のページ|' ;
- }
if( ($page == $page_count) | | ($page_count == 0) ){
- $page_string .= '次のページ|最後のページ';
- }
- else{
- $page_string .= '次のページ|';
- }
if( $amount ){ - $sql = "select * from ID によるテーブルの順序 説明制限 ". ($page-1)*$page_size .", $page_size ";
- $result = mysql_query($sql);
- while ( $row = mysql_fetch_row($result) ){
- $rowset [] = $row;
- }
- }else{
- $rowset = array();
- }
- // 結果を表示するコードはないため、foreach を使用する限りは説明の範囲外です。 , 取得した二次元配列で簡単に結果を表示できます
- ?>
-
コードをコピーしてください
4. OOスタイルコード
次のコードのデータベース接続は、pear db クラスを使用して処理されます。
#--------------------------
-
-
- // FileName: test_pager.php
- // これは簡単なサンプルコードです。pear db クラスを使用してデータベース接続を確立するコードは省略されています
- require "ページャー .class.php";
if ( isset($_GET['page']) )
- {
- $page = (int)$_GET['page'];
- }
- else
- {
- $page = 1;
- }
$sql = "select * from table order by id";
- $pager_option = array(
- "sql" => $sql ,
- "PageSize" => 10,
- "CurrentPageID" => $page
- );
if ( isset($_GET['numItems']) )
- {
- $pager_option [' numItems'] = (int)$_GET['numItems'];
- }
$pager = @new Pager($pager_option);
- $data = $pager->getPageData () ;
if ( $pager->isFirstPage )
- {
- $turnover = "ホームページ|前のページ|";
- }
- else
- {
- $turnover = "ホームページ|前のページ|";
- }
if ( $pager->isLastPage )
- {
- $turnover .= "次へpage|最後のページ";
- }
- else
- {
- $turnover .="次のページ|最後のページ ";
- }
- ?>
-
コードをコピー
手順:
データ処理と結果表示を 1 つのクラスにまとめるのは少し抵抗があると思うので、このクラスはデータを処理するだけで表示は担当しません。表示するときは、状況や要件が変更される可能性があるため、Pager クラスを基にして独自のサブクラスを継承して別のページネーションを表示することをお勧めします。ユーザーのページネーション リストを表示します。
-
-
class MemberPager extends Pager - {
- function showMemberList()
- {
- global $db;
- $data = $this->getPageData();
- //結果を表示するコード
- // ......
- }
- }
///
- if ( isset($_GET['page']) ) を呼び出す
- {
- $page = (int)$_GET['page'];
- }
- else
- {
- $page = 1;
- }
$sql = "ID 順のメンバーから * を選択";
- $pager_option = array(
- "sql" => $sql,
- "PageSize" => 10,
- "CurrentPageID" => $page
- );
if ( isset( $_GET['numItems']) )
- {
- $pager_option['numItems'] = (int)$_GET['numItems'];
- }
- $pager = @new MemberPager($pager_option);
- $pager-> ;showMemberList();
- ?>
-
コードをコピー
説明する必要がある 2 番目の点は、異なるデータベースの互換性です。異なるデータベースでは結果を書き込む方法が異なります。の。
mysql: テーブル制限オフセット、行から * を選択します
pgsql: select * from tablelimit m offset n
...
そのため、クラス内の結果を取得したい場合は、pear dbクラスのlimitQueryメソッドを使用する必要があります。
|