-
- select * from table limit 0,10 // 最初の 10 レコード
- select * from table limit 10,10 // 11 番目から 20 番目のレコード
- select * from table limit 20,10 // 21 番目から 20 番目records 30 records
- ...
-
コードをコピー
この SQL ステートメントのセットは、実際には、$pagesize=10 の場合にテーブル内のデータの各ページをフェッチするための SQL ステートメントです。このようなテンプレートを要約できます。
select * テーブル制限から ($currentpageid - 1) * $pagesize, $pagesize
このテンプレートを使用し、対応する値を上記の一連の SQL ステートメントに代入して、そのとおりであるかどうかを確認してください。データを取得する方法という最も重要な問題を解決したら、あとはパラメータを渡し、適切な SQL ステートメントを作成し、PHP を使用してデータベースからデータを取得して表示するだけです。
phpページングコード:
-
- // データベース接続を確立します
- $link = mysql_connect("localhost", "mysql_user", "mysql_password")
- or die("接続できませんでした: " . mysql_error());
- // 現在のページ番号を取得します
- if( isset($_get['page']) ){
- $page = intval( $_get['page'] )
- }
- $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 ){ //総データ量をページ数で割った余りPages
- $page_count = (int)($amount / $page_size ) + 1; //余りがある場合、ページ数は総データ量をページ数で割って切り上げて 1 を加えたものになります
- }else{
- $page_count = $amount / $page_size; //余りがない場合、ページ数はデータの総量をページごとのページ数で割ったものとなります
- }
- }
- else{
- $page_count = 0;
- }
-
- // ページめくりリンク
- $page_string = '';
- if( $page == 1 ){
- $page_string .= '最初のページ|前のページ|';
- $page_string .= '前のページ|';
- }
- if( ($page == $page_count) | | ($page_count == 0) ){
- $page_string .= '次のページ|最後のページ'
- else {
- $page_string .= '次のページ|最後のページ';
- }
- // データを取得し、結果を 2 次元配列形式で返します
- if( $amount ){
- $sql = "select * from table order by id desc 制限 ". ($page-1)*$page_size .", $page_size";
- $result = mysql_query($sql);
-
- while ( $row = mysql_fetch_row($result) ){
- $rowset[] = $row;
- }
- }else{
- $rowset = array();
- }
- / / 結果を表示するコードはないため、foreach を使用する限り、それは可能です。取得した 2 次元配列を簡単に使用して結果を表示します
-
-
-
- コードをコピーします
-
-
oo スタイルのコード。次のコードのデータベース接続は、pear db クラスを使用して処理されます。
$pagenum=@ceil($num/$pagesize){ if($ pageval<=1) $pageval=1; if($pageval==$pagenum){ echo "ホームページ 前のページa href='$ url?page=".$pagenum."'>最後のページ";
- //echo "page".$pageval."/total".$pagenum."page" ;
- echo " to < select name='toppage' size='1' onchange='window.location="$url?page="+this.value'>n";
- for ($i = 1 ; $i if ($i == $pageval)
- echo "n";
- else
- echo "n";
- }
- echo " $pagenum ページ中";
- }
- }
- }
- ?>
-
-
-
- コピーコード
-
-
-
-
-
|