Как правильно разбить таблицу на страницы, используя библиотеку пагинации в Codeigniter

Я работаю нумерацией страниц в CodeIgniter. Я также вижу учебники и руководство пользователя. но я не могу найти способ сделать это правильно, они вызывают базу данных в Controller для разбивки на страницы. Я хочу правильное решение.

Это контроллер

    public function index() {

$this->load->library('pagination');
$config['base_url'] = 'index.php/Emp';
$config['total_rows'] = 200;
$config['per_page'] = 2;
$config['uri_segment'] = 3;

$this->pagination->initialize($config);


$data = array();

$data['showEmployeeTable']=$this->Em->selectEmployeeData(); //FOR SHOWING A EMPLOYEE DATABASE TABLE

if($query = $this->Em->getDesignationData())  //grabs all record
{
$data['records'] = $query;
}

if($query = $this->Em->getCityRecord())  //grabs all record
{
$data['records_city'] = $query;
}

//$this->load->view('emp_update', $data);
$this->load->view('erv', $data);

}

Это мои модели

public function getDesignationData() {

$query = $this->db->get('emp_desig'); //model created for get data
return $query->result();
}


public function getCityRecord() {

$query = $this->db->get('city'); //model created for get data
return $query->result();
}

// ***************** VEDDING PLAN MODELS **********************************************************


public function selectEmployeeData() {

$query = $this->db->get('emp_manage');
return $query;
}

Так как я могу показать правильную нумерацию страниц на странице просмотра? Пожалуйста, ответьте мне шаг за шагом. Я новичок в Codeigniter.

И это в представлении.

<?php echo $this->pagination->create_links(); ?>

0

Решение

Ваши контроллеры должны быть

public function index() {

$this->load->library('pagination');
$config = array();
$config['base_url'] = 'index.php/Emp';
$config['total_rows'] = 200;
$config['per_page'] = 2;
$config['uri_segment'] = 3;
$this->pagination->initialize($config);


$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data['showEmployeeTable']=$this->Em->selectEmployeeData($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();


if($query = $this->Em->getDesignationData())  //grabs all record
{
$data['records'] = $query;
}

if($query = $this->Em->getCityRecord())  //grabs all record
{
$data['records_city'] = $query;
}

$this->load->view('erv', $data);

}

Ваша модель должна быть

public function selectEmployeeData($limit, $start) {

$this->db->limit($limit, $start);
$query = $this->db->get('emp_manage');
return $query;
}

И в ваших взглядах добавьте следующую строку

<?php echo $links; ?>
3

Другие решения

посмотрите этот код и внесите некоторые изменения в соответствии с вашими требованиями:

Ваш контроллер должен быть:

    function list($offset=0)
{
$num_rows=$this->db->count_all("table_name");
$config['base_url'] = site_url('list');
$config['total_rows'] = $num_rows;
$config['per_page'] = 100;
$config['num_links'] = round($config['total_rows']/$config['per_page']);
//$config['use_page_numbers'] = TRUE;
$config['page_query_string']=TRUE;
$this->pagination->initialize($config);
$data["results"] = $this->Em->selectEmployeeData($config["per_page"], $page);
$this->load->view('viewfile',$data);
}

Ваша модель:

function selectEmployeeData($limit,$offset)//fetch all data with pagination
{
$data = array();
$this->db->limit($limit, $offset);
$Q = $this->db->get('table');
if($Q->num_rows() > 0)
{
foreach ($Q->result_array() as $row)
{
$data[] = $row;
}
}
$Q->free_result();
return $data;
}

Ввиду :

<?php echo $this->pagination->create_links();?>
0

По вопросам рекламы [email protected]