Categories: PHP

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:

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 >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi
Tags: MySQL

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago