think php3.2如何实现分页

来源:互联网 发布:显卡温度监控软件 编辑:程序博客网 时间:2024/06/05 00:41

controller 层:

 public function index(){        //$page 是默认页数        $page = $_REQUEST['p'] ? $_REQUEST['p'] : 1;        //pagesize 是一页显示的条数        $pageSize = $_REQUEST['pageSize'] ? $_REQUEST['pageSize'] : 6;        //$data 是条件        $data["status"] = array('neq',-1);        //到数据库提取上述条件的数据        $menus =D("Menu")->getMenus($data,$page,$pageSize);        //get menuconunt 是为了符合thinkphp 的分页的必要条件        $menusCount = D("Menu")->getMenusCount();        //我们应引用thinkphp分页,先new一个系统自带page 方法, 传入必要的条件。        $res = new \Think\Page($menusCount,$pageSize);        //show为刚刚引用的thinkpage的方法        $pageRes = $res->show();        //得到了pageres  是通过show方法组装的分页数据        $this->assign('pageRes',$pageRes);        $this->assign('menu',$menus);        $this->display();    }

1,其中,  neq 是表示不相等的意思, eq 相等

2.thinkphp自带分页必要参数  1.所查询的数据表的总的条数;2,每一页的条数。

3.$_REQUEST  为 系统自带的获取url 的方法。格式为 $_REQUEST['    '] 

  $page = $_REQUEST['p'] ? $_REQUEST['p'] : 1;  // 有这个值的话为P,没有的话默认为1

4,引用thinkphp 内置的内页功能:   new  \Think\Page();

4,D 调用menu模型的方法:getmenus代码如下:

    public function getMenus($data,$page,$pageSize=10){        $data["status"] = array('neq',-1);        $offset = ($page - 1) * $pageSize;       $list = $this->_db->where($data)->order('menu_id desc')->limit($offset,$pageSize)->select();        return $list;    }