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

avatar sefti
@sefti

4 Kontribusi 2 Poin

Diperbarui 6 tahun yang lalu

2 Jawaban:

kesalahan ada pada rumus.

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Dipost 6 tahun yang lalu

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
}

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban