logo

Impaginazione PHP

PHP viene utilizzato principalmente per archiviare e visualizzare dati da un database. L'impaginazione può essere eseguita con ajax, ma in questo caso viene eseguita con un non-ajax. In questo tutorial impareremo il impaginazione in PHP con MySQL . Facciamo una breve revisione dell'impaginazione con un esempio:

È possibile che una query SQL SELECT restituisca milioni di record. Non è una buona idea visualizzare tutti i record su un'unica pagina. Un lungo elenco di record su una singola pagina potrebbe richiedere molto tempo per caricare la pagina e anche per trovare dati specifici. Ciò può causare (porta a) confusione nella mente dell'utente. Dividere pertanto questi record su più pagine in base alle esigenze dell'utente.

quante once sono 10 millilitri

Quindi, cosa possiamo fare per distribuire questo gran numero di record in numero di pagine? Il metodo per distribuire un singolo elenco in più pagine è noto come Impaginazione . L'impaginazione si riferisce alla visualizzazione del risultato della query su più pagine anziché su una singola pagina.

Cos'è la paginazione?

L'impaginazione è un modo per mostrare i dati su più pagine anziché inserirli in una singola pagina. L'impaginazione aiuta a dividere i record su più pagine, rendendo i dati più leggibili e comprensibili.

L'impaginazione è un compito comune per gli sviluppatori PHP. MySQL aiuta lo sviluppatore a creare l'impaginazione utilizzando LIMITE clausola, che accetta due argomenti. Il primo argomento come COMPENSARE e il secondo argomento è numero di record che ritornerà dal database.

Diamo un'occhiata ad alcuni vantaggi e svantaggi dell'utilizzo del concetto di impaginazione in PHP:

Vantaggi dell'impaginazione

  • L'impaginazione è molto utile nei progetti su larga scala perché rende il webwork più professionale. Non solo è più professionale, ma rende anche la pagina web molto più veloce, precisa ed efficiente.
  • Con l'aiuto dell'impaginazione possiamo risparmiare il tempo di caricamento di una pagina suddividendo i dati su più pagine. Ci evita di caricare molte informazioni contemporaneamente.
    Per esempio - Una pagina Web con 1000 immagini richiederà più tempo per caricare le immagini rispetto alle 50 immagini su ciascuna pagina Web.
    Ciò significa che migliaia di immagini necessitano di migliaia di richieste HTTP, il che renderebbe la pagina non rispondente. Questo problema viene risolto limitando la quantità di dati con l'aiuto dell'impaginazione utilizzando la clausola LIMIT.
  • L'uso dell'impaginazione migliora l'esperienza dell'utente, le entrate pubblicitarie e diminuisce il tempo di caricamento della pagina.

Svantaggi dell'impaginazione

Anche se ci sono alcuni potenti vantaggi dell'impaginazione, molti sviluppatori evitano comunque di usarla. Insieme ad alcuni potenti vantaggi, ci sono anche alcuni svantaggi dell'impaginazione, che sono i seguenti:

  • L'impaginazione stessa rappresenta un grosso sovraccarico in PHP, che è uno degli svantaggi dell'impaginazione. È completamente un sovraccarico in quanto è una funzionalità esterna che può essere implementata a scapito di markup, stile e logica estranei. Un piccolo set di dati spesso ignorato per utilizzare l'impaginazione.
  • L'impaginazione può causare un basso page ranking sul motore di ricerca perché quando una pagina è lontana dalla home page e richiede diversi clic, di solito non ottiene un page ranking elevato.
  • Limita inoltre il numero di collegamenti, condivisioni social, numero totale di risultati visibili sulla pagina Web e testo di ancoraggio che una pagina riceve quando le informazioni sono suddivise su più pagine.
Puoi evitare l'uso della tecnica di impaginazione modificando la struttura delle impostazioni di navigazione.

Implementazione dell'impaginazione con PHP e MySQL

Per implementare l'impaginazione, abbiamo bisogno di un set di dati di grandi dimensioni a cui applicare l'impaginazione. Pertanto, prima dobbiamo creare un database e una tabella. Successivamente, fornisci i record nella tabella e inizia a scrivere il codice per creare l'impaginazione. In questo modo i dati recuperati dal database possono essere suddivisi su più pagine.

Qui introdurremo due esempi di impaginazione. Il primo esempio è un esempio semplice ed elementare di creazione dell'impaginazione senza CSS, mentre nel secondo esempio creeremo l'impaginazione in modo attraente utilizzando CSS e bootstrap. Puoi vedere l'output per entrambi. Di seguito sono riportati i passaggi indicati per la creazione dell'impaginazione;

Semplici passaggi per creare l'impaginazione -

  1. Creare un database e una tabella. Fornire un elenco di record nella tabella.
  2. Connettiti con il database MySQL.
  3. Crea il collegamento di impaginazione per dividere i dati su più pagine e aggiungerli in fondo alla tabella.
  4. Recupera i dati dal database e visualizzali su più pagine.

Segui il passaggio seguente uno per uno e crea una semplice impaginazione.

Esempio 1

Il codice seguente è un semplice esempio di impaginazione, eseguita in PHP con l'aiuto del database MySQL. Suddivide i dati recuperati dal database su più pagine. In questo esempio creeremo l'impaginazione per gli alfabeti da visualizzare su più pagine.

Creazione della banca dati

Prima di tutto, crea un database denominato da impaginazione come abbiamo creato e una tabella al suo interno denominata alfabeto . Crea attributo per nome id E alfabeto e fornire i dati nella tabella.

Impaginazione PHP

Connettività con database

Collegare il file PHP al database è un'attività obbligatoria. In modo da poter visualizzare i dati memorizzati nel database sulla pagina web. Pertanto, collega il database nel tuo file PHP per mostrare i dati sulla pagina web.

È possibile scrivere il codice di connettività del database nello stesso file nonché mantenerlo separato in un altro file e includerlo nel file PHP richiesto. Codice per la connessione al database-

 $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } 

In questo tutorial, stiamo utilizzando mysqli estensione. Quindi, tutte le query sono scritte secondo il formato mysqli.

Ottieni il numero di pagina corrente

Il codice seguente determina il numero di pagina che l'utente sta attualmente visitando. Nel caso in cui non sia presente, per impostazione predefinita il numero di pagina è impostato su 1.

 if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } 

Formula per l'impaginazione

Per l'impaginazione, è necessario impostare il limite del numero di record da visualizzare per pagina. Qui impostiamo il limite per i risultati per pagina su 10, quindi verrà visualizzato su ciascuna pagina come indicato di seguito:

Pagina 1 - Da A a J (1-10)

Pagina 2 - Da K a T (11-20)

Pagina 3 - Dalla U alla Z (21-26)

 $results_per_page = 10; $page_first_result = ($page-1) * $results_per_page; 

Ottieni il numero totale di pagine

 $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); 

Recupera i dati e visualizzali sulla pagina web

Il codice seguente viene utilizzato per recuperare i dati dal database e visualizzarli sulle pagine Web suddivise di conseguenza.

 $query = &apos;SELECT *FROM alphabet LIMIT &apos; . $page_first_result . &apos;,&apos; . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row[&apos;id&apos;] . &apos; &apos; . $row[&apos;alphabet&apos;] . &apos;<br>&apos;; } 

Visualizza il collegamento delle pagine nell'URL

Utilizzando questo codice l'URL della pagina web cambierà per ogni pagina.

 for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; </=>

Codice finale

Ora, metti insieme tutti i codici in un unico file per completare l'impaginazione.

File: Indice2.php

 Pagination <?php //database connection $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } //define total number of results you want per page $results_per_page = 10; //find the total number of results stored in the database $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); //determine which page number visitor is currently on if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } //determine the sql LIMIT starting number for the results on the displaying page $page_first_result = ($page-1) * $results_per_page; //retrieve the selected results from database $query = 'SELECT *FROM alphabet LIMIT ' . $page_first_result . ',' . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row['id'] . ' ' . $row['alphabet'] . '</br>&apos;; } //display the link of the pages in URL for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; } ?&gt; </=>

Produzione:

Vedere l'output seguente per l'esempio di impaginazione sopra -

Impaginazione PHP

Esempio 2

L'esempio seguente è un altro esempio di impaginazione in cui abbiamo utilizzato i CSS insieme all'HTML per rendere più attraente la visualizzazione della pagina web. I CSS rendono la pagina web più creativa e attraente. D'altra parte, MySQL memorizza i dati nel database. Quindi puoi imparare l'impaginazione molto meglio.

Java pubblico o privato

Abbiamo scritto l'intero codice in un singolo file tranne la connettività del database. Pertanto, creeremo due file, ovvero Connection.php e Index1.php. Salva entrambi i file in .php estensione. Nell'esempio seguente imparerai a creare un'impaginazione più creativa e attraente.

    php:Creato per la connettività del databasephp:Creato per l'impaginazione

File: connessione.php

 

File: indice1.php

 Pagination table { border-collapse: collapse; } .inline{ display: inline-block; float: right; margin: 20px 0px; } input, button{ height: 34px; } .pagination { display: inline-block; } .pagination a { font-weight:bold; font-size:18px; color: black; float: left; padding: 8px 16px; text-decoration: none; border:1px solid black; } .pagination a.active { background-color: pink; } .pagination a:hover:not(.active) { background-color: skyblue; } <?php // Import the file where we defined the connection to Database. require_once 'connection.php'; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page=1; } $start_from = ($page-1) * $per_page_record; $query = 'SELECT * FROM student LIMIT $start_from, $per_page_record'; $rs_result = mysqli_query ($conn, $query); ?> <br> <p>This page demonstrates the basic Pagination using PHP and MySQL. </p> <table class="table"> <tr> <th>ID</th> <th>Name</th> <th>College</th> <th>Score</th> </tr> <tbody> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <?php $query = 'SELECT COUNT(*) FROM student'; $rs_result = mysqli_query($conn, $query); $row = mysqli_fetch_row($rs_result); $total_records = $row[0]; echo '</br>&apos;; // Number of pages required. $total_pages = ceil($total_records / $per_page_record); $pagLink = &apos;&apos;; if($page&gt;=2){ echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } ?> <input id="page" type="number" min="1" max placeholder required> Go function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p> <strong>Output:</strong> </p> <p>See the below output for above pagination example -</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-3.webp" alt="PHP Pagination"> <p>Note that code written inside the tag is used for styling and to give an attractive look to the table and pagination present inside the webpage. We also used bootstrap for this.</p> <h3>Explanation of code</h3> <p>Now, we will explain the code used for creating pagination.</p> <h3>Database creation</h3> <p>First of all, create a database named by <strong>pagination</strong> as we created and a table inside it named <strong>student</strong> . Create attribute by name <strong>Rank, Name, College,</strong> and <strong>Score</strong> , and provide at least 25 records in the table.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-4.webp" alt="PHP Pagination"> <h3>Database Connectivity</h3> <p>Connecting the PHP file to the database is a required task. In this tutorial, we are using <strong>mysqli</strong> extension. So, all the queries are written according to mysqli format.</p> <p>Database connectivity code can be written in the same file or you can also keep it separate into another file and include it to your required PHP file. Code for database connection-</p> <pre> $conn = mysqli_connect(&apos;localhost&apos;, &apos;root&apos;, &apos;&apos;); if (! $conn) { die(&apos;Connection failed&apos; . mysqli_connect_error()); } else { mysqli_select_db($conn, &apos;pagination&apos;); } </pre> <h3>Fetch data and display on webpage</h3> <p>As we have created dataset, now we need to fetch and display it to various webpages. The below code is used to retrieve the data from database and display on the webpages that are divided accordingly.</p> <h3>Fetch data</h3> <p>After establishing the database connection in &apos;connection.php&apos; file, we just need to import it into our code using require_once keyword. We will explicitly define the number of records per page to show.</p> <pre> require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); </pre> <h3>Display data</h3> <p>This section is very simple. In this section, we iterate the loop over the records that we fetched and display each record stored in columns of the table.</p> <pre> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </pre> <h3>Pagination Link creation</h3> <p>Now the most important code is pagination link creation. So, we will create the Previous, Next, and numeric links for pagination and add them to bottom of the table.</p> <pre> if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;></pre></1)?1:page));></$total_pages){></=$total_pages;>

Recupera i dati e visualizzali sulla pagina web

Dopo aver creato il set di dati, ora dobbiamo recuperarlo e visualizzarlo su varie pagine Web. Il codice seguente viene utilizzato per recuperare i dati dal database e visualizzarli sulle pagine Web suddivise di conseguenza.

Recupera i dati

Dopo aver stabilito la connessione al database nel file 'connection.php', dobbiamo solo importarlo nel nostro codice utilizzando la parola chiave require_once. Definiremo esplicitamente il numero di record per pagina da mostrare.

 require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); 

Mostra dati

Questa sezione è molto semplice. In questa sezione, iteriamo il ciclo sui record che abbiamo recuperato e visualizziamo ogni record archiviato nelle colonne della tabella.

 <tr> <td></td> <td></td> <td></td> <td></td> </tr> 

Creazione di collegamenti di impaginazione

Ora il codice più importante è la creazione del collegamento di impaginazione. Quindi, creeremo i collegamenti Precedente, Successivo e numerici per l'impaginazione e li aggiungeremo in fondo alla tabella.

 if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active\' href="index1.php?page=" .$i.\'\'>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo \' next \'; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;>