ホームページ  >  記事  >  バックエンド開発  >  便利なPHPページングクラス

便利なPHPページングクラス

WBOY
WBOYオリジナル
2016-07-25 09:02:461002ブラウズ
  1. /**
  2. クエリをページ分割するクラス
  3. @link http://bbs.it-home.org
  4. */
  5. class paging
  6. {
  7. private $pageSize; //各ページに表示される項目の数。デフォルトは 10 項目です。
  8. private $totlePage; // 合計レコード数は何ですか? private $dbConnection; // 現在表示されているページ数
  9. private $show;デフォルトのメソッド show1() を使用するメソッドです。
  10. /**
  11. コンストラクター、データベース接続を確立します
  12. @$pageSizeP 各ページに表示される項目のデフォルト数は 10 です。
  13. @$show ナビゲーションを表示するために使用するメソッド。デフォルトのメソッドは show1() ホームページ | 次のページ | 最後のページ を使用します。
  14. */
  15. public function _construct($pageSizeP=10,$show="show1")
  16. {
  17. $this->dbConnection = @mysql_connect("localhost","ユーザー名","パスワード") );
  18. if($this->dbConnection)
  19. {
  20. die("");
  21. }
  22. mysql_select_db($this->dbConnection,"databaseName");
  23. $this->show = $show;
  24. $this->pageSize = $pageSizeP;
  25. }
  26. /**
  27. デストラクター、データベース接続を閉じます。
  28. */
  29. public function _destruct()
  30. {
  31. @mysql_close($this->dbConnection);
  32. }
  33. /**
  34. データベースにクエリを実行し、データベース内のレコード数を表示します。
  35. @$sql データベースにクエリを実行する SQL ステートメント。
  36. @$charset はデータベースで使用される文字セットをクエリします。デフォルトは UTF-8 です。
  37. @return データベースクエリの結果を配列として保存して返します。項目数は不定です。
  38. */
  39. パブリック関数 querySQL($sql,$charset="UTF-8")
  40. {
  41. mysql_query("SET NAMES ".$charset);
  42. $rs = @mysql_query($sql);
  43. if(!$rs )
  44. {
  45. die("");
  46. }
  47. $num = @mysql_num_rows($rs);
  48. $this->totlePage= ceil($num/$this->pageSize);
  49. $this-> nowPageIndex = (isset($_POST['page']) || $_POST['page'] >= 1):$_POST['page']?1;
  50. if($this->nowPageIndex >$ this->totlePage)
  51. {
  52. $this->nowPageIndex = $this->totlePage;
  53. }
  54. $start = ($this->nowPageIndex - 1)*$this->pageSize;
  55. mysql_free_result( $rs);
  56. $sql .= "LIMIT $start,$this->pageSize";
  57. $rs = @mysql_query($sql);
  58. if(!$rs)
  59. {
  60. die("");
  61. }
  62. $rows = array();
  63. while($row = @mysql_fetch_row($rs))
  64. {
  65. $rows[] = $row;
  66. }
  67. @mysql_free_result($rs);
  68. return $rows;
  69. }
  70. /**
  71. ナビゲーション蘭を表示します。
  72. @$arg ナビゲーションを表示する関数を呼び出すためのパラメータ。
  73. $img1 はナビゲーション接続の画像を保存する配列です。 show1() を呼び出すときに使用されます。
  74. $size は、ナビゲーション ブループリントの 1 行に表示されるページ数です。 show2() を呼び出すときに使用されます。
  75. */
  76. public function show($arg)
  77. {
  78. $func = $this->show;
  79. $this->$func($arg);
  80. }
  81. /**
  82. ナビゲーションは、「ホームページ」→「次のページ」→「最後のページ」の順に表示されます。
  83. @$img1 前のページ | 次のページ | 最後のページに対応する画像パス配列。
  84. */
  85. プライベート関数 show1($img1 = NULL)
  86. {
  87. $url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
  88. $str = "
  89. < ;tr>
  90. 現在前$this->nowPageIndex页/共$this->totlePage页";
  91. if(isset($img) || $img != NULL)
  92. {
  93. $str .= "首页
  94. $str .= ">上一页>
  95. $str .= ">下一页
  96. $str .= " >末页
  97. ";
  98. }
  99. else
  100. {
  101. $str .= "首页>
  102. $str .= ">上一页
  103. $str .= ">次页
  104. $str .= ">末页
  105. ";
  106. }
  107. echo $str;
  108. }
  109. /**
  110. 1|2|3|を選択してください。 。 。ナビゲーションを表示します。
  111. @$size ナビゲーション ブループリントの各行に表示されるページ数。デフォルトは 10 です。
  112. */
  113. プライベート関数 show2($size =10)
  114. {
  115. $url = $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
  116. $str = "
  117. ";
  118. for($index = 1 ; $index <= $this->totlePage ; $index++)
  119. {
  120. $str .= "
  121. ";
  122. if($index == $size)
  123. {
  124. $str .="
  125. ";
  126. }
  127. }
  128. $str .= "
  129. $ str .= "$index
  130. ";
  131. echo $str;
  132. }
  133. }
  134. ?>
复制發


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。