ホームページ  >  記事  >  バックエンド開発  >  php+mysqlページングクラス

php+mysqlページングクラス

WBOY
WBOYオリジナル
2016-07-25 08:43:39810ブラウズ
カプセル化されたクラス:
  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 $display_count = 30;表示される前と次のページの数
  15. var $arr_page_query ; // ページング表示に渡す必要があるパラメータを含む配列
  16. var $prev;
  17. var $next; /メソッド
  18. /********************************************
  19. コンストラクター: __construct()
  20. 入力パラメータ:
  21. $ppage_size: 1 ページあたりの最大表示行数
  22. *********************************** ** **********/
  23. function PageSupport ($ppage_size)
  24. {
  25. $this->page_size=$ppage_size;
  26. }
  27. /**********************************************
  28. コンストラクター: __destruct()
  29. 入力パラメータ:
  30. ********************************************* **/
  31. 関数 __destruct()
  32. {
  33. }
  34. /********************************************
  35. 関数を取得: __get()
  36. * ***********************************************/
  37. 関数 __get($property_name)
  38. {
  39. if(isset($this->$property_name))
  40. {
  41. return($this->$property_name);
  42. }
  43. else
  44. {
  45. return(NULL);
  46. }
  47. /********************************************
  48. 設定関数: __set()
  49. * *********************************************/
  50. function __set($property_name, $value)
  51. {
  52. $this->$property_name = $value;
  53. }
  54. /**********************************************
  55. 関数名: read_data
  56. 関数: SQLクエリ文に従ってテーブルから該当レコードを読み込みます
  57. 戻り値: 属性二次元配列結果 [レコード番号] [フィールド名]
  58. ***************** ** ****************************/
  59. function read_data()
  60. {
  61. $psql=$this->sql;
  62. // データのクエリ、データベース リンクその他の情報はクラス call の外側で実装する必要があります
  63. $result=mysql_query ($psql) または die(mysql_error());
  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) または die(mysql_error()); >current_records=mysql_num_rows($result);
  70. //クエリ結果を結果配列に入れます
  71. $i=0;
  72. while($row=mysql_fetch_Array($result))
  73. {
  74. $this->result[ $i]=$row;
  75. $i++;
  76. }
  77. }
  78. // 総ページ数と現在のページ情報を取得します
  79. $this->total_pages=ceil($this->total_records/$this- >ページサイズ);
  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. echo "";
  97. //生成导航链接
  98. if ($this->current_page > 1) {
  99. echo "首页|";
  100. echo "上一页|";
  101. }
  102. if( $this->current_page < $this->total_pages) {
  103. echo "下一页|";
  104. echo "末页";
  105. }
  106. echo "";
  107. echo "
";
  • }
  • /********************************************
  • 関数名:full_navigate()
  • 関数: ホームページ、次のページ、前ページ、次のページを表示します
  • 1 2 3... 10 11 などのナビゲーションリンクを生成します
  • ********************** ** *************************/
  • function full_navigate()
  • {
  • echo "
    ";
  • echo "
    ";
  • echo "第".$this->current_page."页/共".$this->total_pages."页";
  • echo " ";
  • 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->gt;current_page+$displayCount)<$this->total_pages){
  • $displayCount = $this->gt;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 "
  • ";
  • }
  • }
  • ?>
  • 复制代
    PHP ページに記述されたコード:
    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. /// //// //////////////////////////////////////////// /////// /////////////
    10. $pageSupport = new PageSupport($PAGE_SIZE) //PageSupport オブジェクトをインスタンス化します
    11. $current_page=$_GET["current_page" ];// 現在のページをページングします Count
    12. if (isset($current_page)) {
    13. $pageSupport->__set("current_page",$current_page)
    14. } else {
    15. $pageSupport->__set ("current_page",1);
    16. }
    17. $pageSupport->__set("sql","select * from Article ");
    18. $pageSupport->read_data();//データを読み取る
    19. if ($pageSupport->current_records > ; 0) //データが空でない場合は、データをアセンブルします
    20. {
    21. for ($i=0; $icurrent_records; $i++)
    22. {
    23. $ title = $pageSupport->結果[$i]["タイトル"];
    24. $content = $pageSupport->["コンテンツ"];
    25. $part=substr($content,0,400) ;
    26. // 各データを出力するループ
    27. echo '
      '.$title.'
      class="index_content">'.$part .'
      update "#">delet
    '
  • }
  • } // ページング HTML を表示するには、クラス内でこの関数を呼び出します。
  • //データベースを閉じる
  • mysql_close($con )
  • ;
  • 出典: http://blog.csdn.net/phpfenghuo/article/details/23207099
  • ページネーション、php、mysql


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