【发布时间】:2015-03-29 23:52:49
【问题描述】:
我的网站中有 9 个广告,我用 10 个广告进行分页。好的,codeigniter 用 10 个广告进行分页,但是在第二页和最后一页中它应该只显示 3 个广告,显示 10(另外一页显示 7 个和应该单独的3个)。
这是我的代码:
(控制器)
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
我的路由.php:
$route['(:num)'] = "classificados/index/$1";
Ps:现在我有 19 个 AD 并将限制更改为 6,仅用于此分页测试。
先谢谢了!
【问题讨论】:
-
分页使页面链接,但在该页面上显示内容取决于您。您在视图中做了什么?提供的代码与您的问题无关。
-
我的问题在于分页,而不是内容。不幸的是,在第二页上还显示了一些第一页内容,此时它应该只显示相关内容到第二页。打印:第1页:prntscr.com/6n4t5xprntscr.com/6n4sra第2页:prntscr.com/6n4tatprntscr.com/6n4tg4ps:现在我有15个广告
-
您应该向我们展示您的数据库查询以及您在查询中使用的限制/偏移量以便能够给您答案。
-
我将编辑我的帖子!对不起...
-
@ShaifulIslam.. 你能帮忙解决这个问题吗?
标签: php codeigniter pagination