CodeIgniter помогите с пагинацией

Станислав
На сайте с 27.12.2009
Offline
258
970

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

Есть база данных с таблицей accounts

В моделе файл account.php следующего содержания

class Account extends CI_Model {


public function __construct()
{
$this->load->database();
}

public function get_account($cell = FALSE)
{
if ($cell === FALSE)
{
$query = $this->db->get('accounts');


return $query->result_array();
}

$query = $this->db->get_where('accounts', array('id' => $cell));
return $query->row_array();
}

}

Контроллер accounts.php

<?php

class Accounts extends CI_Controller {

public function __construct()
{
parent::__construct();
$this->load->model('account');
}

public function index()
{
$data['accounts'] = $this->account->get_account();
$data['title'] = 'Тестовая страница';

$this->load->helper('inform');

$this->load->view('layouts/header', $data);
$this->load->view('template/accounts', $data);
$this->load->view('layouts/footer');
}

public function view($cell)
{
$data['value'] = $this->account->get_account($cell);

if (empty($data['value']))
{
show_404();
}

$data['title'] = $data['value']['id'];

$this->load->view('layouts/header', $data);
$this->load->view('template/view', $data);
$this->load->view('layouts/footer');
}
}

router.php

$route['default_controller'] = "welcome";

$route['404_override'] = '';

$route['accounts/(:any)'] = 'accounts/view/$1';
$route['accounts'] = 'accounts';
$route['(:any)'] = 'pages/view/$1';

разбить новости, всего 5 новостей, нужно вывести по 1 на страницу.

Уже как 3 часа бьюсь, так и не разобрался (

Мы там, где рады нас видеть.
C
На сайте с 04.02.2005
Offline
291
#1

$data['accounts'] = $this->account->get_account();

вот здесь все аккаунты или один (true)

поэтому в модели нужно limit к запросу

ps CI не знаю

Станислав
На сайте с 27.12.2009
Offline
258
#2

все акки, а функция view выводит выбранный по айдишнику

bay_ebook
На сайте с 28.05.2010
Offline
111
#3

http://cidocs.ru/210/libraries/pagination.html

Уже написан скрипт разбития

А в моделе нужно указать лимит и offset (откуда начать - текущая страница)

В принципе все просто

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
Станислав
На сайте с 27.12.2009
Offline
258
#4

да я уже читал, сейчас вроде начинаю соображать потихоньку что к чему.

с лимитом справился, теперь правлю модель, может что и получится )

___________________

с роутером теперь проблемы видать

страница

/accounts/page/2/

404 Page Not Found


The page you requested was not found.

в контроллере прописано следующее

$config['base_url'] = base_url().'accounts/page/';

$config['total_rows'] = $this->db->count_all('accounts');
$config['per_page'] = 1;
$config['full_tag_open'] = '<p>';
$config['full_tag_close'] = '</p>';
$this->pagination->initialize($config);

$data['accounts'] = $this->account->get_account($cell = FALSE, $config['per_page'],$this->uri->segment(3));

В модели

public function get_account($cell = FALSE, $number, $offset)

{
if ($cell === FALSE)
{

$this->db->limit($number);
$query = $this->db->get('accounts', $number, $offset);


return $query->result_array();
}

$query = $this->db->get_where('accounts', array('id' => $cell));
return $query->row_array();
}

и в роуторе

$route['(:any)'] = '/accounts/page/$1';

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий