ページングプログラミングにおけるpage.class.phpを理解する

WBOY
リリース: 2016-06-23 14:37:47
オリジナル
1611 人が閲覧しました

ページング プログラムについては、[次のページ] などのリンクをクリックすると、次のページの対応するデータが表示されると理解しています。

つまり、これは基本的にデータベースに対する操作です。 SQL ステートメントに置き換えられます。テーブルの制限から some_fields を選択するだけです。Offset Num;

ここで Num は固定です。たとえば、各ページには 10 個のデータが表示されます

キーは Offset で、クリックするたびにオフセットになります。次のページでは、この値は次のように変更されます:0,10 10,10 20,10....

最終的にページに表示されるのは 2 つだけで、1 つは対応するデータ (画像、テキストなど) です。 ..)、もう 1 つはページング リンク (合計 xx 件のレコード、各ページには 10 件のレコードが表示され、現在のページ 1/32 [ホーム] [前のページ] [次のページ] [最後のページ] )

以下実装コード

<?phpclass page{    //总记录数量    public $count;    //每页显示多少条    public $meiye;    //总页数    public $pages;    //当前是第几页    public $now_page;    //上一页    private $prev;    //下一页    private $next;    //偏移量    public $offset;    //样式    public $style;    //请求文件的地址    private $url;    //传入4个参数:1总记录条数,2每页显示条数,3执行脚本的文件名,4输出样式(可选)    public function __construct($count,$meiye,$url,$style=1){        $this->count=$count;         $this->meiye=$meiye;        $this->pages=ceil($this->count/$this->meiye);        $this->now_page=$this->get_now_page();        $this->url=$url;        $this->prev=$this->get_prev_page();        $this->next=$this->get_next_page();        $this->offset=$this->get_offset();        $this->style=$this->get_style($style);    }    //获得当前是第几页    private function get_now_page(){        return isset($_GET['page'])?$_GET['page']:1;    }    //获得上一页    private function get_prev_page(){        return $this->now_page-1?$this->now_page-1:false;    }    //获得下一页    private function get_next_page(){        return $this->now_page+1>$this->pages?false:$this->now_page+1;    }    //获得偏移量    private function get_offset(){        return $this->now_page<=1&&$this->now_page>0?0:($this->now_page-1)*($this->meiye);    }    //获得分页链接风格默认是:    //共30条记录,每页显示4条,当前第1/8页 [首页] [下一页] [尾页]    private function get_style($s){        $str='';        if ($this->pages>1) {            if($s==1){                $str.="共{$this->count}条记录,每页显示{$this->meiye}条,当前第{$this->now_page}/{$this->pages}页 ";                $str.="<a href='$this->url?page=1'>[首页]</a> ";                $this->prev?$str.="<a href='$this->url?page=$this->prev'>[上一页]</a> ":false;                 $this->next?$str.="<a href='$this->url?page=$this->next'>[下一页]</a> ":false;                 $str.="<a href='$this->url?page=$this->pages'>[尾页]</a>";             }else{                $str.= "当前第{$this->now_page}/{$this->pages}页";                $str.="<a href='$this->url?page=1'>[首页]</a> ";                $this->prev?$str.="<a href='$this->url?page=$this->prev'>[上一页]</a> ":false;                 for ($j = 1; $j <= $this->pages; $j++) {                    $str.="<a href=$this->url?page=$j>$j</a>  ";                }                $this->next?$str.="<a href='$this->url?page=$this->next'>[下一页]</a> ":false;                 $str.="<a href='$this->url?page=$this->pages'>[尾页]</a>";             }            return $str;        }    }}
ログイン後にコピー

使用する場合はオフセットOffsetを取り出してstyle

<?php    include 'mysql.class.php';    include 'page.class.php';    //实例化模型    $m=new Model('woliu');    //获得表中的所有数据    $c=$m->acount();    //实例化分页类(总条数,每页显示多少条记录,执行脚本,样式)    $p=new page($c,4,'page3.php',1);    //获得偏移量    $of=$p->offset;    //查询数据库    $res=$m->select('pic','','',"$of,4");    //便利结果集$res    //输出分页链接    echo $p->style;
ログイン後にコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート