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$righe1);  //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.