Sayfalama nasıl yapılıyor

MVC'ye yeni başladım sizin frameworkünüzü gördüm ve Türkçe olduğu için kullanmak istedim veritabanı işlemleri yaparken veriyi çekebildim ama bir türlü sayfalama yaptıramadım bir örnek yapar mısınız

Cevaplar (3)


Turan Karatuğ
Software Developer - Creator of TitanMVC
5 yıl önce

Titan'da sayfalama işlemi için Pagination plugini kullanabilirsiniz. Örneğin kitaplar tablosunda yer alan kitapları sayfa sayfa listelemek istiyoruz. Bunun için öncelikle pagination plugini ve db sorgularını yapacağımız model dosyasını sisteme dahil ediyoruz;
$this->load->plugin('pagination');
$this->load->model('Kitaplar_model', 'kitaplar');
Model içerisinde oluşturacağımız bir method ile toplam kitap sayısını alıyoruz;
$toplamKitap = $this->kitaplar->toplamKitapSayisi();
Pagination plugini için gerekli ayarları yapıyoruz;
$config = [
'base_url' => base_url('kitaplar'), // Sayfalama yapılacak URL adresi
'per_page' => 10, // Her sayfada listelenecek kayıt sayısı
'total_rows' => $toplamKitap, // Sayfalanacak toplam kayıt sayısı
'uri_segment' => 2 // Sayfa numaralarının yer alacağı URL segmenti. Burada url "kitaplar/1", "kitaplar/2" şeklinde olacağından ikinci sıradaki segment sayfa numarasını veriyor.
];
$this->pagination->init($config);
URL segmentine bakarak bulunduğumuz sayfa numarasını alıyoruz ve hangi kayıttan başlayacağımızı hesaplıyoruz;
if(get_segments(2) > 0)
$start = (get_segments(2) - 1) * $config['per_page'];
else
$start = 0;
Sayfalanacak kayıtlar model içerisinde oluşturulan method ile çekiliyor;
$kitaplar = $this->kitaplar->kitaplariGetir($config['per_page'], $start); // her sayfada listelenecek kitap sayısı ve hangi kayıttan başlanacağı parametre olarak veriliyor.
Model dosyasındaki kayıt sorgumuz da bu şekilde olmalı
public function kitaplariGetir($per_page, $start){
return $this->db->select('*')->from('kitaplar')->order_by('id','desc')->limit($per_page, $start)->get()->results();
}
Son olarak döngümüzü kurup verileri ekrana basıyoruz ve sayfalama linklerini ekliyoruz;
foreach($kitaplar as $kitap) {
echo $kitap->id . ' - ' . $kitap->ad . '<br>';
}
echo $this->pagination->get_links();
Onur Yılmaz
PHP Developer
5 yıl önce

Çok saol turan abi oldu :) Abi yanlız sayfalamada linke tıkladığımda url in sonuna sayıyıyı getiriyor ama 404 veriyor neden olabilir?
Turan Karatuğ
Software Developer - Creator of TitanMVC
5 yıl önce

uri_segment değeri yanlış olabilir. Sisteminizin kurulu olduğu root dizini 0 kabul ederek, sayfa numarasının olduğu segment kaçıncı sırada ise onu yazmanız gerekiyor.
Örneğin;
http://localhost/titanProject/controller/method/pageNum
Yukarıdaki adresteki uri segment numaraları şöyle;
controller : 1, method: 2, pageNum: 3

Cevap Yazın


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]