Adım Adım Örnekle Codeigniter'da Sayfalandırma

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ı

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.