-
[PHP]Paginazione
Allora, io ho un'array di 97 elementi, stamparli tutti in una pagina con un cilclo foreach() mi sembra eccessivo quindi vorrei suddividere i vari elementi su più pagine e tramite due link ("Avanti"-"Indietro") vorrei effettuare la navigazione tra le varie pagine. Il problema sta nel fatto che non ho minimamente idea di come poter fare una cosa del genere! Se qualcuno può aiutarmi gliene sarei molto grato!
-ciao
-
Al posto di del valore di $numperpagina metti quanti elementi vuoi vedere per pagina e al posto di $array metti il nome dell'array. Dentro al ciclo for devi gestire tu come visualizzare il contenuto dell'array. Spero che sia esatto...
Codice PHP:
$numperpagina=10;
if (isset($_GET['pagina']))
$pagina=$_GET['pagina'];
else
$pagina=1;
$inizio=($pagina-1)*$numperpagina;
$fine=$inizio+$numperpagina;
if ($fine>count($array))
$fine=count($array);
for($i=$inizio,$i<$fine;$i++)
echo $array[$i]."<br>";
if ($pagina!=0)
echo "<a href=\"?pagina=".($pagina-1)."\">Indietro</a>";
if ($inizio+$numperpagina<=count($array))
echo "<a href=\"?pagina=".($pagina+1)."\">Avanti</a>";
-
Il codice è giusto, ma solo se gli elementi dell'array sono identificati per chiavi numeriche. Se sono identificati con chiavi testuali l'unica cosa che puoi fare è questa:
Codice PHP:
$numperpagina=10;
if (isset($_GET['pagina']))
$pagina=$_GET['pagina'];
else
$pagina=1;
$inizio=($pagina-1)*$numperpagina;
$fine=$inizio+$numperpagina;
if ($fine>count($array))
$fine=count($array);
/***** EDIT BY DS4 *****/
$i = 0;
foreach ($array as $v)
{
if ($i >= $fine)
// interrompi, non ha più senso continuare!
break;
if ($i >= $inizio)
// stampa il valore
echo ($v . '<BR>');
// questa va comunque eseguita!
$i++;
}
/***********************/
if ($pagina!=0)
echo "<a href=\"?pagina=".($pagina-1)."\">Indietro</a>";
if ($inizio+$numperpagina<=count($array))
echo "<a href=\"?pagina=".($pagina+1)."\">Avanti</a>";
Statemi bene...