Come creare una pagination in php
Oggi voglio presentarvi un’interessantissimo script in php che ci permetterà di realizzare una pagination (giusto per intenderci con chi non sapesse di cosa si tratta, parlo della navigazione delle pagine di un sito , con prew – next e numeri vari.. come da figura sotto) in pochi, semplici passi. Lo script è molto importante per permettere l’utente una corretta e fluida navigazione sul tuo sito, inoltre è parecchio usato dai webmaster di tutta la rete.

La sintassi
Pages($tbl_name,$limit,$path);
Ed i suoi parametri
tbl_name ; il nome della tabella mysql
limit ; quanti blocchi visualizzare per pagina
path ; il nome dell'ex. Potete salvarla anche in pagination.php , ottenendo 'pagination.php?'
Utilizzo
Utilizza questa funzione per crare un pagination compleato, per creare un’altra pagine usa quanto segue :
Pages("table","limit to appear","the path");
Function
function Pages($tbl_name,$limit,$path)
{
$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
$adjacents = "2";
$page = $_GET['page'];
if($page)
$start = ($page - 1) * $limit;
else
$start = 0;
$sql = "SELECT id FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);
if ($page == 0) $page = 1;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "
";
if ($page > 1)
$pagination.= "« previous";
else
$pagination.= "« previous";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "$counter";
else
$pagination.= "$counter";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "$counter";
else
$pagination.= "$counter";
}
$pagination.= "...";
$pagination.= "$lpm1";
$pagination.= "$lastpage";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "1";
$pagination.= "2";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "$counter";
else
$pagination.= "$counter";
}
$pagination.= "..";
$pagination.= "$lpm1";
$pagination.= "$lastpage";
}
else
{
$pagination.= "1";
$pagination.= "2";
$pagination.= "..";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "$counter";
else
$pagination.= "$counter";
}
}
}
if ($page < $counter - 1)
$pagination.= "next »";
else
$pagination.= "next »";
$pagination.= "
n";
}
return $pagination;
}
Ed ecco il css
div.pagination {
padding: 3px;
margin: 3px;
text-align:center;
}
div.pagination a {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #AAAADD;
text-decoration: none; /* no underline */
color: #000099;
}
div.pagination a:hover, div.digg a:active {
border: 1px solid #000099;
color: #000;
}
div.pagination span.current {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #000099;
font-weight: bold;
background-color: #000099;
color: #FFF;
}
div.pagination span.disabled {
padding: 2px 5px 2px 5px;
margin: 2px;
border: 1px solid #EEE;
color: #DDD;
}
Buon divertimento!









Discussion
No responses to "Come creare una pagination in php"
There are no comments yet, add one below.
Leave a Comment