PHP: Simple pagination
Simple PHP pagination uses a Twitter Bootstrap layout
$targetpage = "search.php";
$limit = 50; //Records per page
$total_pages = $total_count; //Total number of the records to paginate
$stages = 3;
$page = mysql_escape_string($_REQUEST['page']);
if ($page) {
$start = ($page - 1) * $limit;
} else {
$start = 0;
}
if ($page == 0) {
$page = 1;
}
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total_pages / $limit);
$LastPagem1 = $lastpage - 1;
$paginate = '';
if ($lastpage > 1) {
$paginate .= "";
if ($page > 1) {
$paginate.= "- «
";
} else {
$paginate.= "- «
";
}
if ($lastpage < 7 + ($stages * 2)) {
for ($counter = 1; $counter <= $lastpage; $counter++) {
if ($counter == $page) {
$paginate.= "- $counter
";
} else {
$paginate.= "- $counter
";
}
}
} elseif ($lastpage > 5 + ($stages * 2)) {
if ($page < 1 + ($stages * 2)) {
for ($counter = 1; $counter < 4 + ($stages * 2); $counter++) {
if ($counter == $page) {
$paginate.= "- $counter
";
} else {
$paginate.= "- $counter
";
}
}
$paginate.= "- ...
";
$paginate.= "- $LastPagem1
";
$paginate.= "- $lastpage
";
} elseif ($lastpage - ($stages * 2) > $page && $page > ($stages * 2)) {
$paginate.= "- 1
";
$paginate.= "- 2
";
$paginate.= "- ...
";
for ($counter = $page - $stages; $counter <= $page + $stages; $counter++) {
if ($counter == $page) {
$paginate.= "- $counter
";
} else {
$paginate.= "- $counter
- ";
}
}
$paginate.= "
- ...
";
$paginate.= "- $LastPagem1
";
$paginate.= "- $lastpage
";
} else {
$paginate.= "- 1
";
$paginate.= "- 2
";
$paginate.= "- ...
";
for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++) {
if ($counter == $page) {
$paginate.= "- $counter
";
} else {
$paginate.= "- $counter
";
}
}
}
}
if ($page < $counter - 1) {
$paginate.= "- »
";
} else {
$paginate.= "- »
";
}
$paginate.= "
";
}
echo $paginate;
Tag: PHP, Pagination, Bootstrap





0 Comments