php+mysql ページング クラス コード

WBOY
リリース: 2016-07-25 08:52:47
オリジナル
1301 人が閲覧しました
  1. /*************************************

  2. クラス名: pagesupport
  3. 機能: mysqlデータベースのデータをページに表示します
  4. ************************************/
  5. class pagesupport{
  6. //Attributes
  7. var $sql;//表示するデータのSQLクエリ文
  8. var $ page_size; //各ページに表示される最大行数
  9. var $start_index; // 表示されるレコードの最初の行のシリアル番号
  10. var $total_records; // レコードの総数
  11. var $current_records; //このページで読み取られたレコード数
  12. var $result ;//読み取り結果
  13. var $total_pages;//総ページ数
  14. var $current_page;//現在のページ番号
  15. var $display_count = 30;表示される前および次のページの数
  16. var $arr_page_query; // ページング表示に渡す必要があるパラメータを含む配列
  17. var $next;
  18. //メソッド
  19. /**********************************************
  20. コンストラクター: __construct()
  21. 入力パラメータ:
  22. $ppage_size: ページごとに表示される最大行数
  23. *********************************** ******* ************/
  24. function PageSupport($ppage_size)
  25. {
  26. $this->page_size=$ppage_size;
  27. $this->start_index=0; }

  28. /**********************************************

  29. コンストラクター: __destruct()
  30. 入力パラメータ:
  31. ********************************************** ** **/
  32. function __destruct()
  33. {
  34. }
  35. /********************************************
  36. get関数: __get()
  37. * *********************************************/
  38. function __get($property_name)
  39. {
  40. if(isset($this-> ;$プロパティ名))
  41. {
  42. return($this-> ;$プロパティ名);
  43. }
  44. else
  45. }
  46. }
  47. /********************************************
  48. set関数: __set()
  49. * ***********************************************/
  50. function __set($ property_name, $value)
  51. {
  52. $this->$ property_name = $value;
  53. /**********************************************
  54. 関数名: read_data
  55. 関数: SQLクエリ文に従ってテーブルから該当レコードを読み込みます
  56. 戻り値: 属性二次元配列結果 [レコード番号] [フィールド名]
  57. ***************** ***** ****************************/
  58. function read_data()
  59. {
  60. $psql=$this->sql;
  61. //クエリデータ、データベースリンク、その他の情報は、
  62. $result=mysql_query($psql) または die(mysql_error()); のクラスの外部実装で呼び出す必要があります。
  63. $this->total_records=mysql_num_rows($result); ;
  64. //このページに表示するレコードを取得するには、LIMIT キーワードを使用します
  65. if($this->total_records>0)
  66. {
  67. $this->start_index = ($this->current_page-1 )*$this->page_size;
  68. $psql=$psql." LIMIT ". $this->start_index." , ".$this->page_size;
  69. $result=mysql_query($psql); (mysql_error());
  70. $this->current_records=mysql_num_rows($result);
  71. //クエリ結果を結果配列に入れます
  72. $i=0;
  73. {
  74. $this->result[$i]=$row;
  75. $i++
  76. }
  77. }
  78. //総ページ数と現在のページ情報を取得します
  79. $this->total_pages=ceil($ this->total_records/$this->page_size);
  80. $this->first= 1;
  81. $this->prev=$this->current_page-1;
  82. $this->next=$ this->current_page+1;
  83. $this->last=$this->total_pages ;
  84. }
  85. /**********************************************
  86. 関数名:standard_navigate()
  87. 機能: ホームページ、次のページ、前ページ、次のページを表示
  88. ********************************** ****** ************/
  89. function standard_navigate()
  90. {
  91. echo "
    ";
  92. echo "
    ";
  93. echo "ページ".$this->current_page."ページ数/合計".$this->total_pages. "ページ";
  94. echo "";
  95. echo "
  96. "; // ナビゲーション リンクを生成します
  97. if ($this->current_page > 1) {
  98. echo "ホームページ|";
  99. echo "前のページ}
  100. if( $this->current_page < $this->total_pages) {
  101. echo "下一页|";
  102. echo "末页";
  103. }
  104. echo "";
  105. echo "
";
  • }
  • /********************************************
  • 関数名:full_navigate()
  • 関数: ホームページ、次のページ、前ページ、次のページを表示します
  • 1 2 3... 10 11 などのナビゲーション リンクを生成します
  • *********************** ** *************************/
  • function full_navigate()
  • {
  • echo "
    ";
  • echo "
    ";
  • echo "第".$this->current_page."页/共".$this->total_pages."页";
  • エコー「」;
  • echo "跳到页";
  • echo "";
  • //生成导航链接 如1 2 3 ... 10 11
  • $front_start = 1;
  • if($this->current_page > $this->display_count){
  • $front_start = $this->current_page - $this ->display_count;
  • }
  • for($i=$front_start;$i<$this->current_page;$i++){
  • echo "[".$i."] ";
  • }
  • echo "[".$this->current_page."]";
  • $displayCount = $this->display_count;
  • if($this->total_pages > $displayCount&&($this ->current_page+$displayCount)<$this->total_pages){
  • $displayCount = $this->current_page+$displayCount;
  • }else{
  • $displayCount = $this->total_pages;
  • for ($i=$this->current_page+1;$i<=$displayCount;$i++){
  • echo "[".$i ."] ";
  • }
  • // 生成导航链接
  • if ($this->current_page > 1) {
  • echo "首页|";
  • echo "上一页|";
  • }
  • if( $this->current_page < $this->total_pages) {
  • echo "下一页|";
  • echo "末页";
  • }
  • echo "";
  • echo "
  • ";
  • }
  • }
  • ?>

  • 复制發

    ページングクラスの使用法:

    1. include_once("fenye_php.php") //クラスを紹介します
    2. ///////// //////////////////////////////////////////////// /// ////////////
    3. $con = mysql_connect("localhost","root","");
    4. if (!$con)
    5. {
    6. die('接続できませんでした: ' . mysql_error ());
    7. }

    8. mysql_select_db("myblog", $con);//データベースを選択します

    9. $PAGE_SIZE=10;//各ページに表示される番号を設定します
    10. //// /////////////////////////////////////////// //////// //////////////////
    11. $pageSupport = new PageSupport($PAGE_SIZE) //PageSupport オブジェクトをインスタンス化します
    12. $current_page=$_GET[" current_page"];//現在のページのページ数
    13. if (isset($current_page)) {
    14. $pageSupport->__set("current_page",$current_page);
    15. } else {
    16. $pageSupport->__set(" current_page",1);
    17. }
    18. $pageSupport->__set("sql","記事から * を選択 ");
    19. $pageSupport->read_data();//データを読み取る
    20. if ($pageSupport- >current_records > 0) // データが空でない場合は、データをアセンブルします
    21. {
    22. for ($i<$pageSupport->current_records; $i++)
    23. {
    24. $title = $pageSupport ->結果[$i]["タイトル"];
    25. $content = $pageSupport->結果[$i]["コンテンツ"];
    26. $part=substr($content,0,400);各データをループして出力します
    27. echo '
      '.$title.'
      ">'.$part.'
    28. 更新
    '
  • }
  • }
  • $pageSupport->standard_navigate(); //ページング HTML を表示します。データベース
  • mysql_close($con);
  • ;
  • 関連ラベル:
    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート