Postingan lainnya
Kenapa data pagination pada codeigniter muncul lagi di page selanjutnya
Mohon bantuannya mastah. saya masih newbie apakah coding saya yang salah atau gimana, pagination sudah jalan dan saya melimit datanya menjadi 4 dari total 6 data.
contoh : dari page pertama ada : post 6, post 5, post 4, post 3. nah dari page kedua ada muncul lagi beberapa data yang sama seperti : post 4, post 3, post 2, post 1;
kenapa yang dua tidak muncul data yang belum ada saja seperti post 2 dan post 1 saja.
untuk lebih jelasnya ini gambarnya :
page 1
Page 2
Code Model post
// ambil data
function lihat($sampai, $dari){
$this->db->select('posting.*,user.nama,user.akses_level');
$this->db->from('posting');
// where slider
$this->db->join('user','posting.id_user = user.id_user');
$this->db->where(array(
'jenis_posting' => 'Posting',
'status_posting' => 'Publish',
));
$this->db->order_by('tanggal','DESC');
$this->db->limit($sampai, $dari);
$query = $this->db->get();
return $query->result();
}
function jumlah(){
$query = $this->db->get('posting');
return $query->num_rows();
}
Controller post
class Artikel extends CI_Controller {
//Load Model
public function __construct()
{
parent::__construct();
$this->load->helper(array('html','url'));
$this->load->model('posting_model');
$this->load->model('tags_model');
$this->load->library('pagination');
$this->load->library('tanggal_indo');
}
//Homepage
public function index(){
$jumlah = $this->posting_model->jumlah();
$config["base_url"] = base_url() . "artikel";
$config["total_rows"] = $jumlah;
$config["per_page"] = 4;
$config['num_links'] = $jumlah;
$config['use_page_numbers'] = TRUE;
$config["uri_segment"] = 2;
$config["full_tag_open"] = '<ul class="pagination">';
$config["full_tag_close"] = '</ul>';
$config["first_link"] = "Pertama";
$config["first_tag_open"] = "<li>";
$config["first_tag_close"] = "</li>";
$config["last_link"] = "Paling Akhir";
$config["last_tag_open"] = "<li>";
$config["last_tag_close"] = "</li>";
$config['next_link'] = '>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '<li>';
$config['prev_link'] = '<';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '<li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
// CHECK FORM PENCARIAN
$valid = $this->form_validation;
$valid->set_rules('cari','Kata kunci','required',
array('required' => 'Kata Kunci Harus Diisi'));
if($valid->run()){
$cari = strip_tags($this->input->post('cari'));
$keywords = str_replace(' ','-',$cari);
redirect(base_url('artikel/cari/'.$keywords),'refresh');
}
$dari = $this->uri->segment(2);
$posting_depan = $this->posting_model->lihat($config["per_page"], $dari);
$links = $this->pagination->create_links();
$tanggal_dibuat = $this->tanggal_indo; // Ambil dari library
$tags = $this->tags_model->listing();
$data = array(
'isi' => 'artikel/list',
'title_atas' => 'Seblog',
'posting_depan' => $posting_depan,
'links' => $links,
'tanggal_dibuat'=> $tanggal_dibuat,
'tags' => $tags,
);
$this->load->view("layout/wrapper", $data);
}
View Post
<?php if(empty($posting_depan)):?>
<div class="alert alert-info"><p class="text-center"><i class="fa fa-info-circle"></i> <strong>Belum ada Artikel</strong></p></div>
<?php else:?>
<?php foreach ($posting_depan as $posting) :?>
<div class="post-preview" style="margin-top:0">
<a href="<?php echo base_url('artikel/read/'.$posting->slug_posting)?>">
<h2 class="post-title">
<?php echo $posting->judul_posting;?>
</h2>
</a>
<!-- Isi di limit -->
<h3 class="post-subtitle text-muted" style="font-weight: lighter !important; font-size: 20px ">
<?php echo strip_tags(character_limiter($posting->isi,130))?>
</h3>
<p class="post-meta">Diposting oleh
<strong><?php echo $posting->nama?> - <?php echo $posting->akses_level?></strong>
pada <?php echo $tanggal_dibuat->indonesian_date($posting->tanggal) ?>
</p>
<p class="text-right">
<!-- Dapatkan tags -->
<?php $tag = $posting->tags;
$kategori = explode(",",$tag);
?>
<?php foreach ($kategori as $kategoris):?>
<a href="<?php echo base_url('artikel/tag/'.$kategoris)?>#hasil" class="btn btn-warning btn-xs"><?php echo $kategoris?></a>
<?php endforeach;?>
<!-- END DAPATKAN TAGS -->
<!-- DISQUS -->
<span class= "badge badge-info text-right" style="color:#fff;"> <i class="fa fa-commenting"></i>
<a href="<?php echo base_url('artikel/read/'.$posting->slug_posting)?>#disqus_thread" class= "btn btn-info btn-xs text-right" style="font-size:9px;">Ngobrol yuk</a></span>
<!-- END DISQUS -->
</p>
</div>
<p class="text-left"><a class="btn btn-sm btn-primary" href="<?php echo base_url('artikel/read/'.$posting->slug_posting) ?>"" role="button">Lanjut Baca</a></p>
<hr>
<?php endforeach;?>
<?php endif;?>
<!-- Pager -->
<div class="clearfix">
<div ><?php echo $links; ?></div>
Mohon bantuannya mastah. Terima kasih
0
2 Jawaban:
Jawaban Terpilih
kalau $dari itu adalah uri halaman yang dimulai dari 1, bisa dibuat begini
function lihat($sampai, $dari) {
// .. snip
$offset = ($dari-1) * $sampai;
// kalau halaman 1 berarti $offset (1-1) * 4 = 0
// kalau halaman 2 berarti $offset (2-1) * 4 = 4
// dst
$this->db->limit($sampai, $offset); // yang dipakai sebagai param kedua $offset, bukan $dari
}
0