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

}

?>