我创建了一个表,该表使用给定的Limit和Offset从数据库中获取并显示记录。现在我在点击表格的任何字段的标题时尝试在表格中应用排序(desc / asc)。我的目的是只对我得到的限制和偏移量的结果进行排序,而是对整个表进行排序,并用新的结果替换以前的结果。
public function dummy(){
$field = "";
$sort = "";
$limit= 2;
$id= 5;
$field = $this->uri->segment(3);
$sort = $this->uri->segment(4);
$data['users'] = $this->admin_model->sortData($field,$sort,$limit,$id);
$this->load->view('admin/dummy',$data);
}
public function sortData($field,$sort,$limit,$id){
$this->db->limit($limit,$id);
$this->db->order_by($field,$sort);
$query = $this->db->get('employee');
return $query->result();
}
以下是我在排序之前得到的记录示例
Firstname|Lastname|BirthDay |Email |Mobile
Wendy |moore |28/7/1990|abc@a.com |xxx
Brad |hoff |14/3/1985|xyz@.com |zzz
基于名字排序后我想要的结果是
Firstname|Lastname|BirthDay |Email |Mobile
Brad |hoff |14/3/1985|xyz@.com |zzz
Wendy |moore |28/7/1990|abc@a.com |xxx
我现在得到的结果是
Firstname|Lastname|BirthDay |Email |Mobile
Anna |Fox |1/8/1995 |xyz@.com |zzz
Berry |Alan |9/10/1992|abc@a.com |xxx
看到它正在对整个表进行排序,并根据以前的偏移量替换结果。
<?php if($this->uri->segment(5)!= 'desc'){ ?>
<a href="<?php echo site_url('admin/dashboard/'.$geturl.'/firstName/desc');?>">
<?php } else
{ ?>
<a href="<?php echo site_url('admin/dashboard/'.$geturl.'/firstName/asc');?>">
<?php } ?> FirstName</a>
答案 0 :(得分:1)
$this->db->select('*');
$this->db->from('employee');
$this->db->order_by($field,$sort);
$this->db->limit($limit,$id);
$query=$this->db->get();
<强> FYI 强>
$sort
应 DESC 或 ASC limit
中,您设置了2个值。它充当LIMIT
和OFFSET
<强>链接强>