salve.. sto creando una paginazione... non volevo prenderne una già fatta.. ho creato le basi... cioè la suddivisione dei record per pagina e la classica barra che mostro in che pagina sono e le pagine successive e precedenti.. nulla di complicato...
ora vorrei capire come poter mostrare per esempio solo massimo tot pagine.. cioè in questo momento se avessi tantissimi record mi mostrerebbe un infinita di pagine (1 2 3 4 5 6 7 ..infinito) mentre io vorrei mostrare massimo per esempio 5 pagine..
esempio, sono alla pagina 3
1 2 3 4 5
se invece sono alla 4
2 3 4 5 6
e così via.. come potrei fare?.. cioè non capisco la logica che devo tenere..
ecco il mio codice
Codice PHP:
<?php
$n_record = 3;
$pag = $_GET['pag'];
if (!$pag) { $pag = 1; }
$record_tot = mysql_num_rows(mysql_query("SELECT * FROM tabella"));
$pag_tot = ceil($record_tot / $n_record);
$pagina_iniziale = ($pag - 1) * $n_record;
$sql = "SELECT * FROM tabella LIMIT $pagina_iniziale, $n_record";
$query = @mysql_query("$sql");
while ($row = mysql_fetch_array($query)) {
echo "$row[prova]
";
}
##Paginazione
echo "Pagine: ";
##se siamo in una pagina superiore alla prima mostro il link per tornare indietro di una pagina e all'inizio
if ($pag > 1) {
echo "<a href=\"paginazione_1.php?pag=1\">Vai all'inizio<a> ";
echo "<a href=\"paginazione_1.php?pag=" . ($pag -1) . "\">Indietro<a> ";
}
for ($p = 1; $p <= $pag_tot; $p++) {
##seleziono la pagina corrente
if ($p == $pag) {
echo "[b]$p[/b] ";
} else {
echo "<a href=\"paginazione_1.php?pag=$p\">$p</a> ";
}
}
##se siamo in una pagina inferiore all'ultima mostro il link per andare avanti di una pagina e alla fine
if ($pag < $pag_tot) {
echo "<a href=\"paginazione_1.php?pag=" . ($pag +1) . "\">Avanti<a> ";
echo "<a href=\"paginazione_1.php?pag=$pag_tot\">Vai alla fine<a> ";
}
?>