Impaginazione PHP

Subodh Poudel 8 luglio 2021
  1. Usa la clausola LIMIT con l’istruzione SELECT in SQL per impaginare le righe in PHP
  2. Aggiungi la funzione di navigazione Previous e Next nell’impaginazione in PHP
Impaginazione PHP

Questo articolo introdurrà un metodo per eseguire l’impaginazione in PHP utilizzando la clausola LIMIT con l’istruzione SELECT in SQL. Useremo la clausola LIMIT per selezionare il numero specifico di righe a partire da un particolare indice da visualizzare come paginazione.

Dimostreremo anche un altro metodo per aggiungere la funzione di navigazione Previous e Next nell’impaginazione PHP. Questo metodo aggiunge solo la funzionalità aggiuntiva per navigare le pagine corrispondenti al primo metodo.

Usa la clausola LIMIT con l’istruzione SELECT in SQL per impaginare le righe in PHP

Possiamo usare la clausola LIMIT con l’istruzione SELECT per specificare i primi n risultati da mostrare su una pagina. Possiamo fornire il numero di pagina nel tag anchor come metodo GET per navigare tra le pagine. In questo metodo, definiamo il numero di righe da visualizzare per pagina e recuperiamo tutte le righe dal database per calcolare il numero totale di pagine richieste. Possiamo usare l’array $_GET con la funzione isset() per ottenere il numero di pagina richiesto dall’utente.

Ad esempio, crea una variabile $results_per_page e memorizza 2 al suo interno. Utilizzare la funzione mysqli_num_rows() per trovare il numero di righe nel database e memorizzare nella variabile $number_of_results. Utilizzare la funzione ceil() per determinare il numero totale di pagine necessarie per visualizzare le righe. Dividi la variabile $number_of_results per la variabile $results_per_page all’interno della funzione ceil(). Utilizzare la variabile superglobale $_GET con la funzione isset() per verificare se la variabile page è stata impostata. Se non è stato impostato, impostare la variabile $page su 1. Se la variabile è stata impostata, assegnare il valore alla variabile $page. Sottrai la variabile $page con 1 e moltiplicala con la variabile $this_page_first_result. Memorizzare l’operazione nella variabile $this_page_first_result. Scrivere un’istruzione SQL con la clausola LIMIT come SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $risultati_per_pagina. Eseguire la query e visualizzare i risultati. Alla fine, crea un for-loop per eseguire un bucle tra la variabile $page e il $number_of_page. All’interno del bucle, echo il tag anchor e scrivi il valore dell’attributo href come index.php?page'.$page. Tra i tag anchor scrivi la variabile $page.

Nell’esempio seguente, la tabella alpha nel database contiene sei righe. Dopo aver eseguito l’impaginazione, vengono visualizzate due righe per pagina. La funzione ceil() determina il numero totale di pagine necessarie per visualizzare le righe. Inizialmente, la variabile $page non è impostata, quindi la pagina inizia dalla pagina 1. La variabile $this_page_first_result determina il numero di pagina in cui si trova attualmente l’utente. Le variabili $this_page_first_result indicano la prima riga della pagina. La variabile $results_per_page indica il numero di risultati per pagina. La sezione di output mostra la pagina index.php. Quando si fa clic sulla pagina 2, emette le due righe successive del database.

Codice di esempio:

#php 7.x
<?php
$number_of_pages = ceil($number_of_results/$results_per_page);
if (!isset($_GET['page'])) {
    $page = 1;
} else {
    $page = $_GET['page'];
}
$this_page_first_result = ($page-1)*$results_per_page;
$sql='SELECT * FROM alpha LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
    echo $row['id'] . ' ' . $row['value']. '<br>';
}
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
?>

Produzione:

1 A 
2 B 
1 2 3

Aggiungi la funzione di navigazione Previous e Next nell’impaginazione in PHP

Possiamo aggiungere alcuni frammenti di codice aggiuntivi all’esempio di codice nel primo metodo per fornire la funzione di navigazione Previous e Next nell’impaginazione. Possiamo incrementare e decrementare la variabile $page di 1 per puntare alla pagina precedente e successiva. Possiamo utilizzare le variabili incrementate e decrementate nel tag anchor per ottenere le funzionalità Next e Previous.

Ad esempio, crea due variabili, $prev e $next. Sottrarre la variabile $page con uno e assegnare l’operazione alla variabile $prev. Allo stesso modo, aggiungine uno alla variabile $page e assegnalo alla variabile $next. Fai eco a un tag ancora che dice Previous subito prima del cicli for dei numeri di pagina. Scrivi il valore index.php?page=' . $prec. nell’attributo href del tag anchor. Allo stesso modo, crea un altro tag anchor per Next utilizzando la variabile $next come valore di page nell’attributo href.

Nella sezione output di seguito, mostra la seconda pagina. Cliccando su Previous si accede alla prima pagina e cliccando su Next, si accede alla terza pagina.

Codice di esempio:

# php 7.x
<?php
$prev = $page -1;
$next = $page +1;
echo ' <a href="index.php?page=' . $prev . '"> Previous </a> ';
for ($page=1;$page<=$number_of_pages;$page++) {
    echo '<a href="index.php?page=' . $page . '">' . $page . '</a> ';
}
echo ' <a href="index.php?page=' . $next . '"> Next </a> ';
?>

Produzione:

3 C 
4 D 
Previous 1 2 3 Next
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn