Paginierung in Codeigniter mit Schritt-für-Schritt-Beispiel

Datenbanken sind Lebewesen. Sie wachsen mit der Zeit. Beim Entwerfen von Anwendungen müssen wir die vielen Datensätze berücksichtigen, die die Benutzer durchsuchen müssen. Die Paginierung ermöglicht es uns, unsere Ergebnisse in kleine überschaubare Teile zu zerlegen. Die folgende Abbildung zeigt ein Beispiel für die Paginierung in der Google-Suche.

In diesem Lernprogramm erfahren Sie, wie Sie Datenbankergebnisse in CodeIgniter mithilfe der Paginierungsbibliothek paginieren. Dieses Tutorial setzt voraus, dass Sie mit den Grundlagen von CodeIgniter Active Record vertraut sind. Wenn Sie dies nicht tun, können Sie die vorherigen Tutorials lesen. Die andere Annahme ist, dass Sie CodeIgniter bereits heruntergeladen haben.

In diesem Tutorial lernen Sie-

Datenbankkonfiguration

Wir beginnen damit, die Datenbank zu erstellen und einige Dummy-Datensätze darin einzufügen. Es wird eine einzelne Tabellendatenbank mit 50 Datensätzen sein.

Führen Sie das folgende Skript für MySQL aus, um die Tabelle authors der Datenbank zu erstellen. Fügen Sie 50 Dummy-Datensätze ein. |_+_| |_+_|

Nachdem wir nun unsere Datenbank erfolgreich erstellt und Dummy-Datensätze eingefügt haben, konfigurieren wir unsere CodeIgniter-Anwendung für die Kommunikation mit der Datenbank.

Öffnen Sie application/config/database.php

Legen Sie die Datenbankverbindungsparameter ähnlich wie die folgenden fest |_+_|

HIER,

  • 'hostname' => 'localhost', setzt den Hostnamen der Datenbank
  • 'username' => 'root', gibt den Datenbanknamen an
  • 'password' => 'openseseme', setzt das Datenbank-Passwort
  • 'database' => 'ci_pagination', gibt den Datenbanknamen an.

Wir werden auch die Datenbankbibliothek automatisch laden, wenn unsere Anwendung startet. Lass uns das tun. Öffnen Sie application/config/autoload.php

Laden Sie die Datenbankbibliothek wie im folgenden Code gezeigt |_+_|

Das war's für die Datenbankkonfiguration.

Arbeiten wir nun am Datenbankmodell für die Paginierung

CodeIgniter Pagination-Datenbankmodell

Erstellen Sie ein neues Modell Authors_model in application/models

Fügen Sie den folgenden Code hinzu |_+_|

HIER,

  • geschützt $table = 'Autoren'; Definieren Sie eine geschützte Variable, die den Datenbanktabellennamen für das Modell definiert
  • öffentliche Funktion __construct() {…} ruft die übergeordnete Konstruktormethode auf
  • public function get_count() {…} gibt die Gesamtzahl der Datensätze in der Datenbanktabelle zurück. Dies ist für Paginierungszwecke erforderlich
  • öffentliche Funktion get_authors($limit, $start) {…} definiert eine Methode, die verwendet wird, um paginierte Ergebnisse aus der Datenbank abzurufen. Wir passieren das Limit und den Startpunkt. Das Limit definiert die Gesamtzahl der zurückzugebenden Datensätze, während start die Anzahl der zu überspringenden Datensätze definiert

das war's für unser Datenbankmodell. Lassen Sie uns nun die Routen erstellen, die auf unsere paginierten Ergebnisse reagieren.

CodeIgniter-Paginierungsrouten

Öffnen Sie die Routendatei in application/config/routes.php

Fügen Sie die folgende Route hinzu |_+_|

HIER,

  • Wir definieren einen Routenautor, der einen optionalen Parameter der Nummer akzeptiert. Der optionale Parameter wird durch die öffnenden und schließenden Klammern definiert. Die definierte Route ruft die index-Methode im Authors-Controller auf.

Kommen wir nun zum Controller für unsere paginierten Ergebnisse

CodeIgniter Pagination Controller

Erstellen Sie eine neue Datei Authors.php im Verzeichnis application/controllers

Fügen Sie den folgenden Code hinzu |_+_|

HIER,

  • class Authors erweitert CI_Controller {…} wir definieren eine Klasse Authors die die CI_Controller Klasse erweitert
  • public function __construct() {…} Diese Methode initialisiert den Elternkonstruktor und lädt den URL-Helper, das Autorenmodell und die Paginierungsbibliothek.
  • public function index() {…} definiert die Methode, die auf unsere Routenautoren antwortet
    • $config['base_url'] = base_url() . „Autoren“; legt die Paginierungs-URL fest, die zum Generieren von Paginierungslinks verwendet wird
    • $config['total_rows'] = $this->authors_model->get_count(); legt die gesamte Zeile fest, die paginiert werden muss. Der Wert wird aus dem Autorenmodell durch Aufrufen der Methode get_count abgerufen.
    • $config['per_page'] = 10; definiert die Zeilen, die pro Seite angezeigt werden müssen
    • $config['uri_segment'] = 2; gibt das URL-Segment an, das den Wert enthält, der zum Überspringen von Datensätzen verwendet wird
    • $this->pagination->initialize($config); initialisiert die Paginierungsbibliothek mit dem von uns definierten config-Array-Wert und weist die obigen Werte zu.
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; prüft, ob die Sprungnummer im zweiten Segment der URI gesetzt wurde und wenn sie nicht gesetzt ist, wird der Variablen $page der Wert 0 zugewiesen
    • $data['links'] = $this->pagination->create_links(); erstellt die Paginierungslinks und weist sie dem Links-Schlüssel der Array-Variablen $data zu.
    • data['authors'] = $this->authors_model->get_authors($config['per_page'], $page); hat die paginierten Autorendatensätze abgerufen und dem Autorenschlüssel der Array-Variablen $data zugewiesen
    • $this->load->view('authors/index', $data); lädt die Indexansicht in das authors-Verzeichnis und übergibt die Array-Variable $data.

Das war's für unser Modell. Lassen Sie uns nun die Ansicht erstellen, die unsere Datenbankergebnisse anzeigt.

Erstellen Sie ein neues Verzeichnis authors in application/views

Erstellen Sie eine neue Datei index.php in application/views/authors/index.php

Fügen Sie den folgenden Code hinzu |_+_|

HIER,

  • durchläuft die Ergebnisse der Variablen $authors und gibt die Ergebnisse in einer Tabelle aus
  • druckt die Paginierungslinks am Ende unserer Tabelle.

Starten wir jetzt unsere Anwendung und sehen wir uns die Ergebnisse an

In diesem Tutorial verwenden wir den integrierten PHP-Webserver, Sie können jedoch jeden Webserver verwenden, der PHP unterstützt.

Öffne das Terminal

Führen Sie den folgenden Befehl aus |_+_|

HIER,

  • Der obige Befehl durchsucht das Anwendungscodeverzeichnis und startet den integrierten Server auf Port 3000.

Hinweis: Der Anwendungspfad muss mit dem Pfad übereinstimmen, in den Sie CodeIgniter heruntergeladen haben. Dazu können Sie eine beliebige Portnummer verwenden, die auf Ihrem Computer frei ist. Es ist nicht erforderlich, Port 3000 zu verwenden.

Öffnen Sie den Webbrowser und laden Sie die folgende URL

http://localhost:3000/authors

Sie sollten in der Lage sein, ähnliche Ergebnisse wie die folgenden zu erhalten

Zusammenfassung

In diesem Tutorial haben wir die Grundlagen der Paginierung behandelt und die Paginierungsbibliothek in CodeIgniter genutzt, um eine Anwendung zu erstellen, die Datenbankergebnisse paginiert.