Impaginazione PHP
-
Usa la clausola
LIMIT
con l’istruzioneSELECT
inSQL
per impaginare le righe in PHP -
Aggiungi la funzione di navigazione
Previous
eNext
nell’impaginazione in 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 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