-
-
// データベース接続を確立します - $link = mysql_connect("localhost", "mysql_user", "mysql_passWord")
- or die("接続できませんでした: " . mysql_error ());
- // 現在のページ番号を取得します
- if( isset($_GET['page']) ){
- $page = intval( $_GET['page'] );
- }
- else{
- $page = 1;
- }
- //ページごとのページ数
- $PageSize = 10;
- //データの総量を取得する
- $sql = "select count(*) as amount from table";
- $result = mysql_query( $sql);
- $row = mysql_fetch_row($result);
- $amount = $row['amount']
- // 合計ページ数を計算します
- if( $amount ){
- if( $amount < ; $page_size ){ $page_count = 1; } // 合計データ量が $PageSize 未満の場合、ページは 1 つだけです
- if( $amount % $page_size ){ // 合計データ量の残りを取ります1ページあたりのページ数で割ったもの
- $page_count = (int)($ amount / $page_size) + 1 //余りがある場合、ページ数は総データ量をページ数で割った値となります。切り上げて 1 を加えます
- }else{
- $page_count = $amount / $page_size; //If 余りがない場合、ページ数は合計データ量を各ページの数で割った値になります
- }
- }
- else{
- $page_count = 0;
- }
- // ページめくりリンク
- $page_string = '';
- if( $page == 1 ){
- $page_string .= '最初のページ|前のページ|';
- }
- else{
- $page_string .= '最初のページ |前のページ< /a>|';
- }
- if( ($page == $page_count) || ($page_count == 0) ){
- $page_string .= '次のページ|最後のページ';
- }
- else{
- $ 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);< ;/p>
while ( $row = mysql_fetch_row($result) ){
- $rowset[] = $ row;
- }
- }else{
- $rowset = array();
- }
- // なし 結果を表示するためのコードが含まれていますが、これについては説明の範囲を超えています。foreach を使用する限り、簡単に表示できます。取得した二次元配列で結果を表示します
- ?>
-
コードをコピーします
4. OOスタイルコード
データベース接続は、pear db クラスを使用して処理されます。
して 2 つの点を説明します。
データ処理と結果表示を 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,
- "ページサイズ" => 10,
- "現在のページID" =>
- if ($_GET['numItems'])
- $pager_option['numItems' ] = (int)$_GET['numItems'];
- }
- $pager = @new MemberPager($pager_option);
- $pager->showMemberList();
- ?>
-
-
-
- コードをコピーします
-
注: 異なるデータベースの互換性のため、異なるデータベースで結果のセクションを書き込む方法は異なります。
mysql: テーブル制限オフセット、行から * を選択します
pgsql: select * from tablelimit m offset n
...
そのため、クラス内で結果を取得する場合は、pear dbクラスのlimitQueryメソッドを使用する必要があります。
|