Navigazione tra i Valori in PHP su Pagine Multiple

Dopo aver impostato la connessione alla base dati e prelevato i valori che poi abbiamo inserito in una tabella, questa volta ci troviamo a creare delle liste dinamiche che contengano una quantità prefissata di righe. Dobbiamo fare questo perché nel database aziendale ci saranno sicuramente centinaia di valori, per questo in questa lezione vedremo come creare liste di valori e nella prossima vedremo anche come far effettuare delle ricerche ed anche con filtraggio ed ordinamento dei dati. In effetti questo lavoro ci risulta abbastanza semplificato, in quanto qualche articolo fa ho scritto un post su come visualizzare liste di valori in PHP e MySQL, quindi riprenderemo le informazioni da quel mio lavoro.
La prima cosa da fare è riempire il nostro database con PHPMyAdmin di valori, consiglio di inserire una decina di articoli di magazzino in quanto metteremo 3 records per ogni pagina, poi, semplicemente cambiando un valore ad una variabile, possiamo adattarlo a 10 o 20 righe per pagina. Ecco gli inserimenti che occorre fare al codice della pagina rispetto a quella della precedente lezione:

...
// funzione per sapere il numero di record
public function GetNumRows()
{
   if ($this->m_Rowset != NULL)
	return mysql_num_rows($this->m_Rowset);

   return 0;
}
...

Abbiamo aggiunto una nuova funzione alla nostra classe CMySQL per avere il numero totale dei records, quindi possiamo calcolare il numero di righe da saltare per avere il record esatto:

...
// Calcolo il numero  dell'ultima pagina
$rows = 4;
$page = 2;

$tot_rows = $articoli->GetNumRows();
$last_page = (int)($tot_rows / $rows);
if (($tot_rows % $rows) > 0)
   $last_page++;

// Vado avanti fino alla pagina selezionata
if ($page > 1)
{
   $numrec = $rows * ($page - 1);
   for ($i = 0; $i < $numrec; $i++)
   {
       if (!$articoli->MoveNext())
	   break;
   }
}
...

Infine andiamo a modificare la parte che scrive la tabella:

...
$counter = 0;
do
{
   if ($counter >= $rows)
	break;

   if ($articoli->GetData("Descrizione") != NULL)
   {
	....
	$counter++;
  }
} while ($articoli->MoveNext());
...
<tr>
<td colspan="6" height="30" align="center" valign="middle"
        bgcolor="eeeeee" style="color:#444444;font-family:
        trebuchet,Tahoma,Verdana;font-size:12px;font-weight:
        normal">
<?php

   if ($counter == 1)
	echo "Visualizzato $counter valore nella pagina
            $page di $last_page";
   else if ($counter > 1)
	echo "Visualizzati $counter valori nella pagina
            $page di $last_page";
   else
	echo "Non ci sono valori nella lista";

?>
</td>
</tr>
...

Ecco il risultato:

Cerberus

Lista di valori in Cerberus

Provate ad aumentare i valori delle righe da visualizzare, le pagine in questo caso devono diminuire. Come compito vi chiedo di inserire dei link di spostamento in fondo alla lista con i soliti “precedente”, “successivo”, “primo” ed “ultimo” ed ovviamente implementarli. Se avete seguito il mio corso ed i miei articoli su PHP, con assiduità ed attenzione, saprete sicuramente svolgere questo semplice compito.

<< Lezione PrecedenteInizio Corso – Lezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in PHP e contrassegnata con . Contrassegna il permalink.