集成tp分页类代码

jerry thinkphp 2015年11月19日 收藏
集成tp分页类代码。小伙伴再也不用重复引用了
<?php
    class PageExtendsAction extends Action{
            /**
        @$sqlName 数据表名称 string
        @$sql 1:有where条件 2:无where条件 int
        @$sqlCon where 条件 string
        @$orderField 排序 string
        @$pageNum 数量 string
        @$DataName 数据输出名称 string
        @$DataPage 分页输出名称 string
        @$orderIf 多表查询 array
        |------array[$i]['field'] 字段名
        |------array[$i]['for'] 条件字段
        |------array[$i]['sqlName'] 查询表明
        |------array[$i]['forField'] 查询后字段
        |------array[$i]['getArr'] 是否获取整个数据还是数组元素 1为获取整个数组,2为只获取单个元素
        */
        public function DataPage($sqlName,$sql,$sqlCon,$pageNum,$orderField,$DataName,$DataPage,$orderIf){
            $Data = M($sqlName); // 实例化Data数据对象
            import('ORG.Util.Page');// 导入分页类
            if($sql == 1){
                $count = $Data->where($sqlCon)->count();// 查询满足要求的总记录数 $map表示查询条件
            }else if($sql == 2){
                $count = $Data->count();// 查询满足要求的总记录数 $map表示查询条件
            }
            $Page = new Page($count,$pageNum);// 实例化分页类 传入总记录数
            $show = $Page->show();// 分页显示输出
            if($sql == 1){
                $list = $Data->where($sqlCon)->order($orderField)->limit($Page->firstRow.','.$Page->listRows)->select();// 进行分页数据查询
            }else if($sql == 2){
                $list = $Data->order($orderField)->limit($Page->firstRow.','.$Page->listRows)->select();// 进行分页数据查询
            }
            // -------------------------------------
            // ---------@多表调用名称@ start---------
            if($orderIf != null){
                for($i=0;$i<count($list);$i++){
                    for($j=0;$j<count($orderIf);$j++){
                        // 参数分解
                        $field = $orderIf[$j]['field'];
                        $for = $orderIf[$j]['for'];
                        $sqlName = $orderIf[$j]['sqlName'];
                        $forField = $orderIf[$j]['forField'];
                        // 赋值操作
                        $id = $list[$i][$field];
                        $arr = M($sqlName) -> where("$for = $id") -> find();
                        if($orderIf[$j]['getArr'] == 1){
                            $list[$i][$field] = $arr;
                        }else if($orderIf[$j]['getArr'] == 2){
                            $list[$i][$field] = $arr[$forField];
                        }else{
                            echo "非法操作";
                        }
                    }
                }
            }
            // -------------------------------------
            // ---------@多表调用名称@ end---------
            $this->assign($DataName,$list);// 赋值数据集
            $this->assign($DataPage,$show);// 赋值分页输出
        }
    }
?>