PHPページングクラスの使い方
page.class.php
- class Page {
- private $total_rows;//データベース内のエントリの総数
- private $per_page_rows;//ページごとに表示されるエントリの数
- private $limit ;
- private $ uri;
- private $total_pages;//総ページ数
- private $config=array("header"=>"レコード数","prev"=>"前のページ","次のページ" =>" 次のページ","first"=>"ホームページ","last"=>"最後のページ");
- private $list_length=8;
- public function __construct($total_rows,$per_page_rows=10) ,$url_args) {
- $this->total_rows=$total_rows;
- $this->per_page_rows=$per_page_rows;
- $this->uri=$this->get_uri($url_args);
- $this- >page = !empty($_GET['page']) ? $_GET['page'] : 1;
- $this->total_pages=ceil($this->total_rows/$this->per_page_rows) ;
- $this ->limit=$this->set_limit();
- }
- プライベート関数 set_limit() {
- return "limit ".($this->page-1)*$this->per_page_rows .",{ $this->per_page_rows}";
- }
- プライベート関数 get_uri($url_args) {
- $url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],"?" ) ? "" : "?").$url_args;
- $parse=parse_url($url);
- if (isset($parse['query'])) {
- parse_str($parse['query'],$ params);/ /URL文字列を配列に解析します
- unset($params['page']);//配列内の添え字がpageである値を削除します
- $url=$parse['path'].'? '.http_build_query($params );// URL を再度構築します
- }
- return $url;
- }
- public function __get($args) {
- if ($args=="limit") {
- return $this-> ;limit;
- }else{
- return null;
- }
- }
- プライベート関数 start_page(){
- if ($this->total_rows==0) {
- return 0;
- }else{
- return (( $this->page-1) *$this->per_page_rows)+1;
- }
- }
- プライベート関数 end_page(){
- return min($this->page*$this->per_page_rows,$ this->total_rows);
- }
- プライベート関数 go_first() {
- $html="";
- if ($this->page==1) {
- $html.=" {$this-> ;config['first']}  ;";
- }else{
- $html.=" {$this-> config['first']}< /a> ";
- }
- return $html;
- }
- プライベート関数 go_prev() {
- $html="";
- if ($this->page== 1) {
- $html.=" {$this->config['prev']} ";
- }else{
- $html.=" {$this->config['prev']} ";
- }
- return $html;
- }
- プライベート関数 go_next() {
- $ html="";
- if ($this->page==$this->total_pages) {
- $html.=" {$this->config[' next']} ";
- }else{
- $html.=" { $this->config['next ']} ";
- }
- return $html;
- }
- プライベート関数 go_last() {
- $html="";
- if ($this- >page==$this-> ;total_pages) {
- $html.=" {$this->config['last']} ";
- }else{
- $html.=" {$this->config['last']} ";
- }
- return $html;
- }
- プライベート関数 go_page() {
- return ' ' ;
- }
- プライベート関数 page_list() {
- $link_page="";
- $i_num=floor($this->list_length/2);
- for ($i = $i_num ; $i >= 1; $ i--) {
- $page=$this->page-$i;
- if ($page }else{
- $link_page.=" {$page} ";
- }
- }
- $link_page.=" {$this->page} ";
- for ($i = 1; $i $page=$this-> page+$i;
- if ($page<=$this->total_pages) {
- $link_page.=" {$page} ";
- }else{
- Break;
- }
- }
- return $link_page;
- }
- public function out_page($display=array(0,1,2,3,4 ,5,6,7,8)) {
- $display_html='';
- $html[0]=" 共有{$this->total_rows}{$this- >config['header']} ";
- $html[1]=" 每页显示".($this->end_page()-$this->start_page() +1)."条,本页显示从{$this->start_page()}--{$this->end_page() }{$this->config['header']} ";
- $html[2]=" {$this->ページ} /{$this->total_pages}页 ";
- $html[3]=$this->go_first();
- $html[4]=$this-> ;go_prev();
- $html[5]=$this->page_list();
- $html[6]=$this->go_next();
- $html[7]=$this->go_last ();
- $html[8]=$this->go_page();
- foreach ($display as $index){
- $display_html.=$html[$index];
- }
- return $display_html;
- }
- }
- ?>
复制代
page_demo.php
- header("content-type:text/html;charset=utf-8");
- require_once './page.class.php';
- require_once '../config/config.db.php';
- //数据库中の总条数:total_rows;
- //每一页显示的条数:per_page_rows
- $sql="select * from cp_sd_day";
- $rt=mysql_query($sql);
- $total_rows=mysql_num_rows($rt);
- $per_page_rows=10;
- $page=new Page($total_rows,$per_page_rows) ;
- $sql="select * from cp_sd_day {$page->limit}";
- $rt=mysql_query($sql);
- echo '
';
- echo '
cp_sd_day';
- while (!!$row=mysql_fetch_assoc($rt)) {
- echo '
';
- echo '
'.$row['date_no'].' | ';
- echo '
'.$row['max_notwin'].' | ';
- echo '
'.$row['sum_last_miss'].' | ';
- echo '
'.$row['last_miss'].' | ';
- echo '
'.$row['last_miss_sort'].' | ';
- echo '
';
- }
- echo '
'.$page->out_page(array(2,3,4,5,6,7,8)).' ';
- echo '< ;/table>';
- ?>
复制代
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31
|