Ciao ragazzi, questo è un argomento ben noto, voglio però ottimizzare lo script che uso per dividere il risultato di una query in pagine.
Ecco il mio codice:
Codice PHP:
connect();
$contaRecord = mysql_query("SELECT count(*) AS tot FROM news WHERE active = '1'");
$record = mysql_fetch_array($contaRecord);
$righe = 10;
$pagine = ceil($record['tot'] / $righe);
if(!isset($_GET['p']) || $_GET['p'] < 1)
$_GET['p'] = 1;
else
if(isset($_GET['p']) && $_GET['p'] > $pagine)
$_GET['p'] = $pagine;
$p = $_GET['p'];
$result = selectNews($idNews, $p, $righe, 1); //mia funzione di SELECT su DB
//qui in mezzo stampo le news
for($i = 1; $i <= $pagine; $i ++)
{
echo"<a href=\"./?page=News&p=$i\">";
if($p == $i)
echo"<font size=\"4\">[b]$i[/b]</font>";
else
echo"$i";
echo"</a>";
if($i < $pagine)
echo" - ";
}
Tutto funziona correttamente e il risultato che ottengo è questo:
codice:
1 - [2] - 3
se fossi sulla pagina 2
il problema è che se io avessi 1000 pagine uscirebbero tutti i numeri da 1 a 1000 il che diventerebbe poco bello e poco efficiente. Vorrei quindi ottenere un risultato di questo tipo:
codice:
[1] - 2 - 3 - ... - 20
se fossi sulla pagina 1
codice:
1 - ... - [18] - 19 - 20
se fossi sulla pagina 18
Se conoscete qualche script dal quale possa prendere spunto ve ne sarei molto grato.
Saluti.