2012-05-30 2 views
0

Я думаю, что каждый (в основном новичок пользователей CI) сталкивается с трудностями в разбивке на страницы с использованием активной записи.CodeIgniter pagination с активной записью

В официальных документах CI нет четких инструкций, объясняющих, как использовать объект класса pagination в активной записи. Моя проблема; не может определить текущую страницу и установить ее в оператор SQL. Поэтому, когда программа извлекает данные из MySQL с разбивкой на страницы, все страницы переходят сначала 0 и $config['per_page'];. Я имею в виду, если я установил значение per_page=20, все ссылки на страницы ссылаются на 0,20 строк MySQL.

My SQL заявление является:

$this->db->query("SELECT b.*, a.adCampaignTitle FROM ads a, sms b WHERE b.`smsAd_ID`=a.ad_ID LIMIT " . $config['per_page'])->result(); 

Моего Pagination Класс свойство:

$this->load->database(); 
$config['base_url'] = 'http://localhost/index.php/admin/index/page/'; 
$config['total_rows'] = $this->db->count_all('sms'); 
$config['per_page'] = 2; 
$this->pagination->initialize($config); 

Если кто-то поможет мне, как к инициализации и установите текущей страницы в SQL part Я буду очень рад ...

ответ

1

Мы можем сделать это вещи несколько способов ..!

  1. У вас должен быть номер страницы с вами. Как и каждый звонок, вы просто переходите к номеру страницы.

Этот параметр можно назвать page_number

так что ваш URL будет выглядеть как http://server.com/index.php/controller/function?page_number=2

Так что вам просто нужно, чтобы получить ($this->input->get('page_number') * $config['per_page']) станет как смещение, а затем ограничить будет $config['per_page'] ,

  1. Используя тот же расчет, вы можете делать в режиме просмотра файла и передать его url или post parameter как limit=1&offset=2 ..!

Я не буду говорить, что это лучше всего, но это решение.

Вы выбираете то, что хотите ..!

1

Глядя на ваш URL, четвертый сегмент будет содержать смещение.

Таким образом, вы можете использовать:

$offset = $this->uri->segment(4, 0); 

$this->db->query("SELECT ... LIMIT {$offset}, {$config['per_page']}"); 
+0

Извините, но это не сработало, как это .. :( –

+0

Пожалуйста, вы можете запустить это: 'Эхо $ this-> db-> last_query();' –

+0

Главная:. ВЫБРАТЬ б *, a.adCampaignTitle ОТ ads a, sms b WHERE b.'smsAd_ID' = a.ad_ID LIMIT 0,20 –

Смежные вопросы