- Detaylar
- Son Güncelleme: 12 Haziran 2021
Veritabanları canlı varlıklardır. Zaman geçtikçe büyüyorlar. Uygulamaları tasarlarken, kullanıcıların göz atması gereken birçok kaydı dikkate almamız gerekiyor. Sayfalandırma, sonuçlarımızı yönetilebilir küçük parçalara ayırmamızı sağlar. Aşağıdaki resim, Google aramasında bir sayfalandırma örneğini göstermektedir.
Bu öğreticide, sayfalandırma kitaplığını kullanarak CodeIgniter'da veritabanı sonuçlarını nasıl sayfalandıracağınızı öğreneceksiniz. Bu öğretici, CodeIgniter Active Record'un temellerini bildiğinizi varsayar. Bunu yapmazsanız, önceki öğreticileri okuyabilirsiniz. Yapılan diğer varsayım, CodeIgniter'ı zaten indirmiş olmanızdır.
Bu eğitimde, öğreneceksiniz-
- Veritabanı yapılandırması
- CodeIgniter Sayfalandırma Veritabanı Modeli
- CodeIgniter Sayfalandırma Yolları
- CodeIgniter Sayfalandırma Denetleyicisi
Veritabanı yapılandırması
Veritabanını oluşturmaya ve içine bazı sahte kayıtlar eklemeye başlayacağız. Üzerinde 50 kayıt bulunan tek bir tablo veritabanı olacaktır.
Veritabanı yazarları tablosunu oluşturmak için aşağıdaki betiği MySQL'e karşı çalıştırın. 50 sahte kayıt ekleyin. |_+_| |_+_|
Veritabanımızı başarıyla oluşturup içine yapay kayıtlar eklediğimize göre, şimdi CodeIgniter uygulamamızı veritabanı ile iletişim kuracak şekilde yapılandıralım.
application/config/database.php dosyasını açın
Veritabanı bağlantı parametrelerini aşağıdakine benzer şekilde ayarlayın |__+_|
BURADA,
- 'hostname' => 'localhost', veritabanının ana bilgisayar adını ayarlar
- 'username' => 'root', veritabanı adını belirtir
- 'password' => 'openseseme', veritabanı şifresini belirler
- 'database' => 'ci_pagination', veritabanı adını belirtir.
Ayrıca uygulamamız başladığında veritabanı kitaplığını da otomatik olarak yükleyeceğiz. Hadi bunu yapalım. application/config/autoload.php dosyasını açın
Aşağıdaki kodda gösterildiği gibi veritabanı kitaplığını yükleyin |__+_|
Veritabanı yapılandırması için bu kadar.
Şimdi sayfalandırma için veritabanı modeli üzerinde çalışalım
CodeIgniter Sayfalandırma Veritabanı Modeli
Uygulamada/modellerde Authors_model yeni bir model oluşturun
Aşağıdaki kodu |_+_| ekleyin
BURADA,
- korumalı $tablo = 'yazarlar'; model için veritabanı tablosu adını tanımlayan korumalı bir değişken tanımlayın
- public function __construct() {…}, ana yapıcı yöntemini çağırır
- public function get_count() {…}, veritabanı tablosundaki toplam kayıtları döndürür. Bu, sayfalama amaçları için bir ihtiyaçtır
- public function get_authors($limit, $start) {…}, veritabanından sayfalandırılmış sonuçları almak için kullanılacak bir yöntemi tanımlar. Limit ve başlangıç noktasından geçeceğiz. Limit, döndürülecek toplam kayıt sayısını tanımlarken, başlangıç, atlanması gereken kayıt sayısını tanımlar.
veritabanı modelimiz için bu kadar. Şimdi sayfalandırılmış sonuçlarımıza yanıt verecek rotaları oluşturalım.
CodeIgniter Sayfalandırma Yolları
route dosyasını application/config/routes.php içinde açın
Aşağıdaki rotayı ekleyin |_+_|
BURADA,
- Sayının isteğe bağlı bir parametresini kabul eden bir rota yazarı tanımlarız. Opsiyonel parametre, açma ve kapama parantezleri kullanılarak tanımlanır. Tanımlanan yol, Yazarlar denetleyicisindeki dizin yöntemini çağırır.
Şimdi sayfalandırılmış sonuçlarımız için denetleyiciye geçelim
CodeIgniter Sayfalandırma Denetleyicisi
application/controllers dizininde yeni bir Authors.php dosyası oluşturun
Aşağıdaki kodu |_+_| ekleyin
BURADA,
- class Authors CI_Controller'ı genişletir {…} CI_Controller sınıfını genişleten bir Authors sınıfı tanımlarız
- public function __construct() {…} bu yöntem, ana kurucuyu başlatır ve url yardımcısını, yazar modelini ve sayfalandırma kitaplığını yükler.
- public function index() {…}, rota yazarlarımıza yanıt veren yöntemi tanımlar
- $config['base_url'] = base_url() . 'yazarlar'; sayfalandırma bağlantıları oluşturmak için kullanılacak sayfalandırma URL'sini ayarlar
- $config['total_rows'] = $this->authors_model->get_count(); sayfalandırılması gereken toplam satırı ayarlar. Değer, yazar modelinden get_count yöntemi çağrılarak alınır.
- $config['per_page'] = 10; sayfa başına görüntülenmesi gereken satırları tanımlar
- $config['uri_segment'] = 2; kayıtları atlamak için kullanılacak değeri içeren URL segmentini belirtir
- $this->pagination->initialize($config); tanımladığımız ve yukarıdaki değerleri atadığımız yapılandırma dizisi değerini kullanarak sayfalandırma kitaplığını başlatır.
- $sayfa = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; atlama numarasının URI'nin ikinci bölümünde ayarlanıp ayarlanmadığını kontrol eder ve ayarlanmadıysa, $page değişkenine 0 değeri atanır
- $data['links'] = $this->pagination->create_links(); sayfalama bağlantılarını oluşturur ve bunları $data dizisi değişkeninin bağlantı anahtarına atar.
- data['authors'] = $this->authors_model->get_authors($config['per_page'], $page); sayfalandırılmış yazar kayıtlarını aldı ve bunları $data dizisi değişkeninin yazar anahtarına atar
- $this->load->view('yazarlar/dizin', $veri); dizin görünümünü yazarlar dizinine yükler ve $data dizi değişkenine iletir.
Modelimiz için bu kadar. Şimdi veritabanı sonuçlarımızı gösterecek görünümü oluşturalım.
Uygulamada/görünümlerde yeni bir dizin yazarları oluşturun
application/views/authors/index.php içinde yeni bir index.php dosyası oluşturun
Aşağıdaki kodu |_+_| ekleyin
BURADA,
- $authors değişkeninin sonuçları arasında dolaşır ve sonuçları tabloya yazdırır
- tablomuzun altındaki sayfalama bağlantılarını yazdırır.
Şimdi uygulamamıza başlayalım ve sonuçları görelim
Bu eğitimde, yerleşik PHP web sunucusunu kullanıyoruz, ancak PHP'yi destekleyen herhangi bir web sunucusunu kullanabilirsiniz.
Terminali aç
Aşağıdaki komutu çalıştırın |_+_|
BURADA,
- Yukarıdaki komut, uygulama kodu dizinine göz atar ve 3000 numaralı bağlantı noktasında yerleşik sunucuyu başlatır.
Not: uygulama yolu, CodeIgniter'ı indirdiğiniz yolla eşleşmelidir. Bunun için bilgisayarınızda ücretsiz olan herhangi bir port numarasını kullanabilirsiniz. 3000 portunu kullanmak gerekli değildir.
Web tarayıcısını açın ve aşağıdaki URL'yi yükleyin
http://localhost:3000/yazarlar
Aşağıdakine benzer sonuçlar elde edebilmelisiniz
Özet
Bu öğreticide, sayfalandırmanın temellerini ele aldık ve CodeIgniter'daki sayfalandırma kitaplığından yararlandık ve veritabanı sonuçlarını sayfalandıran bir uygulama oluşturmak için kullandık.