PHP分页
当某个列表的数据过多时,一般都会设置分页功能。
分页功能的代码
<?php
function get_url()
{
$str = $_SERVER['PHP_SELF'] . '?';
if($_GET){
foreach($_GET as $k => $v){
if($k != 'page'){
$str.= $k.'='.$v.'&';
}
}
}
return $str;
}
function page($current, $count, $limit, $size, $class = 'digg')
{
$page = '';
if ($count > $limit) {
$pages = ceil($count / $limit);
$url = getUrl();
$page .= '<div class="' . $class . '">';
if ($current == 1) {
$page .= '<span class="disabled">首 页</span>';
$page .= '<span class="disabled">上一页</span>';
} else {
$page .= '<a href="' . $url . 'page=1">首 页</a>';
$page .= '<a href="' . $url . 'page=' . ($current - 1) . '">上一页</a>';
}
if ($current <= floor($size / 2)) {
$start = 1;
$end = $pages < $size ? $pages : $size;
} else if ($current >= $pages - floor($size / 2)) {
$start = $pages - $size + 1 <= 0 ? 1 : $pages - $size + 1;
$end = $pages;
} else {
$start = $current - floor($size / 2);
$end = $current + floor($size / 2);
}
for ($i = $start; $i <= $end; $i++) {
if ($i == $current) {
$page .= '<span class="current">' . $i . '</span>';
} else {
$page .= '<a href="' . $url . 'page=' . $i . '">' . $i . '</a>';
}
}
if ($pages == $current) {
$page .= '<span class="disabled">下一页</span>';
$page .= '<span class="disabled">尾 页</span>';
} else {
$page .= '<a href="' . $url . 'page=' . ($current + 1) . '">下一页</a>';
$page .= '<a href="' . $url . 'page=' . $pages . '">尾 页</a>';
}
$page .= '</div>';
}
return $page;
}
调用分页
<?php
include_once('function.php');
include_once('page.php');
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$CountSql = "SELECT COUNT(*) AS C FROM pre_admin";
$count = find($CountSql);
$limit = 10;
$size = 5;
$ShowPage = page($page,$count['c'],$limit,$size);
$start = ($page - 1);
$AdminSql = "SELECT * FROM pre_admin ORDER BY id DESC LIMIT $start,$limit";
$AdminList = all($AdminSql);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 引用分页样式 -->
</head>
<body>
<!-- 数据输出 -->
<!-- 分页输出 -->
<?php echo $ShowPage; ?>
</body>
</html>