У меня есть 9 AD на моем сайте, и я делаю разбивку на страницы с 10. Хорошо, codeigniter делает разбиение на страницы на 10 объявлений, но на второй и последней странице должно отображаться только 3 AD, показать 10 (7 другая страница и 3, которые должны быть одни).Неправильная разбивка на страницы Codeigniter
Это мой код:
(контроллер)
class Classificados extends MY_Controller {
public function index($offset = 0) {
// load pagination library
$this->load->library('pagination');
$limit = 6;
$config = array();
$config['base_url'] = base_url('');
$config['uri_segment'] = 1;
$config['total_rows'] = $this->classificados_model->somarTodos($f_estado, $f_cidade);
$config['per_page'] = $limit;
$config['use_page_numbers'] = TRUE;
$config['num_links'] = 2;
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = '»';
$config['prev_link'] = '«';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="javascript:">';
$config['cur_tag_close'] = ' <span class="sr-only">(current)</span> </a></li>';
$config['full_tag_open'] = '<nav>
<ul class="pagination">';
$config['full_tag_close'] = '</ul>
</nav>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$dados['anuncios'] = $this->classificados_model->buscaAnuncios($limit, $offset, $f_estado, $f_cidade);
$dados['paginacao'] = $this->pagination->create_links();
(модель)
Classificados_Model
function buscaAnuncios($limit, $offset, $f_estado, $f_cidade) {
$this->db->limit($limit, $offset);
$where = array(
'estados.sigla' => $f_estado,
'cidades.nome' => $f_cidade,
'anuncios.anuncio_ativo' => '1',
'usuarios.bloqueado_usuario' => '0',
'usuarios.ativado_usuario' => '1'
);
$this
->db
->select("*")
->from("usuarios")
->join("anuncios", "anuncios.usuario_anuncio_id = usuarios.id_usuario", "inner")
->join("estados", "estados.id = usuarios.estado_usuario", "inner")
->join("cidades", "cidades.id = usuarios.cidade_usuario AND estados.id = cidades.id_uf", "inner")
->order_by("anuncios.data_anuncio","desc");
$query = $this->db->get_where('', $where);
return $query->result_array();
}
Порядок стр.2:
SELECT *
FROM (`usuarios`)
INNER JOIN `anuncios` ON `anuncios`.`usuario_anuncio_id` = `usuarios`.`id_usuario`
INNER JOIN `estados` ON `estados`.`id` = `usuarios`.`estado_usuario`
INNER JOIN `cidades` ON `cidades`.`id` = `usuarios`.`cidade_usuario` AND estados.id = cidades.id_uf
WHERE `estados`.`sigla` = 'rj'
AND `cidades`.`nome` = 'rio de janeiro'
AND `anuncios`.`anuncio_ativo` = '1'
AND `usuarios`.`bloqueado_usuario` = '0'
AND `usuarios`.`ativado_usuario` = '1'
ORDER BY `anuncios`.`data_anuncio` desc
LIMIT 2, 10
Мой route.php:
$route['(:num)'] = "classificados/index/$1";
Ps: Теперь у меня есть 19 объявлений и изменить лимит до 6, только для этого теста постраничной.
Спасибо заранее!
пагинация делает ссылку страницы, но отображение контента на этой странице, зависит от you.what вы сделали на ваш взгляде? Прилагается код не связан с вашим вопросом. –
Моя проблема заключается в пейджинге, а не в содержании. К сожалению, на второй странице также отображается часть содержимого первой страницы, когда она должна показывать только соответствующий контент на второй странице. Печать: Страница 1: http://prntscr.com/6n4t5x http://prntscr.com/6n4sra Страница 2: http://prntscr.com/6n4tat http://prntscr.com/6n4tg4 Ps: Теперь у меня есть 15 ADs –
. Вы должны показать нам свой запрос db и какой лимит/смещение, которое вы используете в своем запросе, чтобы дать вам ответ. – sotoz