phpで簡単なページング(データベースからレコードを読み出す)を作成する方法の詳細

2841 ワード

PHP初心者は、ずっとページを作りたいと思っていたので忘れてしまいましたが、今日は注意されてネットで検索しました.一部の書いたものは読めないし、あまり見に行かなかった.最後に簡単なものを見つけました.
大まかな考えは、
  1.ページごとに表示するレコードの最大数を設定します.
  2.合計ページ数の計算
  3.現在のページと合計ページ数を比較して接続の状態を変更
  4.limit制御でデータベースからレコードを読み込む
コードは次のとおりです.
 
  
$conn = mysql_connect('localhost','root','');
            mysql_select_db('db_BookStore',$conn);
            mysql_query("set names utf8");
            if(isset($_GET['page']))                   // page , , 1
            {
                $page = intval($_GET['page']);
            }
            else
            {
                $page = 1;
            }
            $page_size = 2; //
            $sql = "SELECT count(*) as amount FROM tb_BookInfo";
            $result = mysql_query($sql);
            $row = mysql_fetch_array($result);
            //
            $amount = $row['amount'];
            if($amount)
            {
                if($amount < $page_size){$page_count = 1;}
                if($amount % $page_size){$page_count = (int)($amount / $page_size) + 1; }
                else{$page_count = $amount / $page_size;}
            }
            else
            {
                $page_count = 0;
            }
            //
            $page_string = "";
            if($page == 1)
            {
                $page_string .= " | ";
            }
            else
            {
                $page_string .= "トップページ | のページ";
            }
            $page_string .= "| $page |";
            if($page == $page_count)
            {
                $page_string .= " | ";
            }
            else
            {
                $page_string .= " のページ | ページ";
            }
          $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;
       }
?>

これはとても簡単な方法です.通行人の皆さん、他のタイプの方法があれば、教えてください.