数据库访问类SysDb 小结

原创 2019-01-22 13:29:27 332
摘要:class SysDb{ public function table($table){ $this->where = []; $this->field = '*'; $this->order = ''; $this->limit&nbs
class SysDb{
	public function table($table){
		$this->where = [];
		$this->field = '*';
		$this->order = '';
		$this->limit = 0;

		$this->table = $table;
		return $this;
	}

	public function field($field = '*'){
		$this->field = $field;
		return $this;
	}

	public function limit($limit){
		$this->limit = $limit;
		return $this;
	}

	public function order($order){
		$this->order = $order;
		return $this;
	}

	public function where($where = []){
		$this->where = $where;
		return $this;
	}

	public function item(){
		return Db::name($this->table)->field($this->field)->where($this->where)->find();
	}

	public function lists(){
		$query = Db::name($this->table)->field($this->field)->where($this->where);
		$this->limit && $query = $query->limit($this->limit);
		$this->order && $query = $query->order($this->order);
		return $query->select();
	}
	
	public function cates($index){
		$query = Db::name($this->table)->field($this->field)->where($this->where);
		$this->limit && $query = $query->limit($this->limit);
		$this->order && $query = $query->order($this->order);
		$lists = $query->select();
		if(!$lists){
			return $lists;
		}
		//dump($lists);
		//echo '<hr>';
		$result = [];
		foreach ($lists as $value) {
		
		//foreach ($lists as $key => $value) {
		
		$result[$value[$index]] = $value;
			//dump($result[$value[$index]]);
			//dump($value[$index]);
			//echo $key.'-----'.$index;
			//echo '<hr>';
		}
		return $result;
	}
	//二次封装分页方法,返回值total =>'符合条件数据的总数量',lists=>'符合条件的数据,$data->items()等价于$data->toArray()把'
	//对象转换成数组结果集, pages =》‘渲染分页的HTML,返回分页变量’
	public function pages($pageSize = 3){
		$total = Db::name($this->table)->where($this->where)->count();
		$query = Db::name($this->table)->field($this->field)->where($this->where);
		$this->order && $query = $query->order($this->order);
		$data = $query->paginate($pageSize);
		//$data = $query->paginate($pageSize,$total);//$total可有可无
		return array('total'=>$total,'lists'=>$data->items(),'pages'=>$data->render());
	}
	//.........
	//.........
	//.........
}

$query->paginate($pageSize,$total)  和 $query->paginate($pageSize)  运行没有区别呢,$total每起啥作用

批改老师:韦小宝批改时间:2019-01-22 14:20:41
老师总结:$total 是返回数据的总数啊 在分页的时候需要一个总数和每页的起始条数才能知道一页多少数据一共多少页啊 而第一中的写法也要规范点 你使用第二种方法也可以进行分页??

发布手记

热门词条