eccoti la mia funzione
per funzionare gli passi 2 argomenti : la pagina attuale e il numero totale degli articoli ottenuti dalla tua query oppure il numero di elementi dell' array.. vedi tu
Codice PHP:
function list_pages($pagina,$articoli)
{
$cols = 3; // le colonne
$rows = 5; // le righe
$pages = 8; // num di pagine prima e dopo la pagina attuale
$elements=$cols*$rows; // il numero di elementi per pagina
$num_pagine=ceil(count($articoli)/$elements)-1;
$qry_str="";
// in questi 3 cicli if determino i link da assegnare ai numeri delle pagine
if (isset($_REQUEST['brand']) && $_REQUEST['brand'] != "") $qry_str.="&brand=".$_REQUEST['brand'];
if (isset($_REQUEST['grp']) && $_REQUEST['grp'] != "") $qry_str.="&grp=".$_REQUEST['grp'];
if (isset($_REQUEST['s_grp']) && $_REQUEST['s_grp'] != "") $qry_str.="&s_grp=".$_REQUEST['s_grp'];
$qry_str=substr($qry_str,1);
//echo "$qry_str
";
$str="";
if ($pagina!="1")
$str.="<a href=\"list.php?$qry_str&page=1\"> << </a><a href=\"list.php?$qry_str&page=".($pagina-1)."\"> < </a>";
if ($pagina<$pages)
$max=1;
else
$max=$pagina-$pages;
for ($a=$max;$a<=($pagina-1);$a++) //antecedente la pagina attuale
{
$str.="<a href=\"list.php?$qry_str&page=$a\">$a</a>";
}
$str.="[b]$pagina[/b]";
if (($pagina+$pages)>$num_pagine)
$max=$num_pagine-$pagina;
else
$max=$pages;
//echo $max;
for ($p=$pagina+1;$p<=$pagina+$max;$p++) // dopo la pagina attuale
{
$str.="<a href=\"list.php?$qry_str&page=$p\">".$p."</a>";
}
if ($pagina!=$num_pagine)
$str.="<a href=\"list.php?$qry_str&page=".($pagina+1)."\"> > </a><a href=\"list.php?$qry_str&page=$num_pagine\"> >> </a>";
echo <<<OUT
<table border="0" width="100%" id="intestazione,5,1,enum">
<tr>
<td align="center">$str</td>
</tr>
</table>
OUT;
}