http://www.ilixin.net/wp-content/uploads/2013/10/pagination.jpg
分页起着重要的作用,在任何Web应用程序,具有足够大的数据被分成页。它不仅外观整洁,但也提高了一个网页的加载时间。所以,分页是很重要的一个改进的用户界面,并节省服务器资源。在本教程中,我会告诉你一个简单的方法来创建在PHP中,同时获取数据从MySQL分页。所以,让我们开始吧。
寻找jQuery的分页?这是在这里 。
我刚才提到下面这个分页教程经常会用到的三个重要变量。
1
2
3
$page; // This variable contains the current page number
$limit; // The number of posts / articles to show on each page
$total_posts; // The total number of posts available in the database
现在,看看下面的代码,并揣摩自己什么它是所有关于。不要担心,如果你有无法作为代码始终是很好的注释。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
* Trying to get the page number if the $_GET['p'] parameter is set. If not, set the $page variable to 1.
*/
if(isset($_GET['p'])) {
$page = intval($_GET['p']);
if(empty($page)) {
$page = 1;
}
}
/*
* $start variable as per the current page. We will be using this in our SQL queries.
*/
$start = ($page – 1) * $limit;
/*
* An important fix for the pagination.
*/
if($start == $total_posts || $start > $total_posts) {
$start = 0;
$page = 1;
}
首先,我们检查page参数是否是通过设置全局变量$ _GET 。这是一个GET 请求,因为我们将在url中传递的页码。如果没有设置,那么$页= 1 ,这意味着我们是在第一页。然后,开始的 变量的值被设置,因为它会被用在我们的SQL语句以及与限制 变量提取结果。最后,我已经申请了一个小的分页修复,因此,如果有人试图在url这是我们的最后一页大于手动输入页码,分页复位的第一页。
这里是我编码,我们将使用在我们的网页链接显示的分页功能。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
function pagination($page, $total_pages, $limit) {
/*
* We are going to use $stages for creating the gap between pages in the pagination links.
*/
$stages = 1;
/*
* The previous and next links.
*/
$prev = $page – 1;
$next = $page + 1;
$lastpage = ceil($total_pages/$limit);
$LastPagem1 = $lastpage – 1;
$paginate = ”;
if($lastpage > 1) {
$paginate .= ‘<div>’;
## Previous
if($page > 1) {
$paginate .= ‘<a href=”?p=’.$prev.’”>previous</a>’;
} else {
$paginate .= ‘<span>previous</span>’;
}
## Pages
if($lastpage < 7 + ($stages * 2)) {
for($counter = 1; $counter <= $lastpage; $counter++) {
if($counter == $page) {
$paginate .= ‘<span>’.$counter.’</span>’;
} else {
$paginate .= ‘<a href=”?p=’.$counter.’”>’.$counter.’</a>’;
}
}
} elseif($lastpage > 5 + ($stages * 2)) {
if($page < 1 + ($stages * 2)) {
for($counter = 1; $counter < 4 + ($stages * 2); $counter++) {
if($counter == $page) {
$paginate .= ‘<span>’.$counter.’</span>’;
} else {
$paginate .= ‘<a href=”?p=’.$counter.’”>’.$counter.’</a>’;
}
}
$paginate .= ‘…’;
$paginate .= ‘<a href=”?p=’.$LastPagem1.’”>’.$LastPagem1.’</a>’;
$paginate .= ‘<a href=”?p=’.$lastpage.’”>’.$lastpage.’</a>’;
} elseif($lastpage – ($stages * 2) > $page && $page > ($stages * 2)) {
$paginate .= ‘<a href=”?p=1″>1</a>’;
$paginate .= ‘<a href=”?p=2″>2</a>’;
$paginate .= ‘…’;
for($counter = $page – $stages; $counter <= $page + $stages; $counter++) {
if($counter == $page) {
$paginate .= ‘<span>’.$counter.’</span>’;
} else {
$paginate .= ‘<a href=”?p=’.$counter.’”>’.$counter.’</a>’;
}
}
$paginate .= ‘…’;
$paginate .= ‘<a href=”?p=’.$LastPagem1.’”>’.$LastPagem1.’</a>’;
$paginate .= ‘<a href=”?p=’.$lastpage.’”>’.$lastpage.’</a>’;
} else {
$paginate .= ‘<a href=”?p=1″>1</a>’;
$paginate .= ‘<a href=”?p=2″>2</a>’;
$paginate .= ‘…’;
for($counter = $lastpage – (2 + ($stages * 2)); $counter <= $lastpage; $counter++) {
if($counter == $page) {
$paginate .= ‘<span>’.$counter.’</span>’;
} else {
$paginate .= ‘<a href=”?p=’.$counter.’”>’.$counter.’</a>’;
}
}
}
}
## Next
if($page < $counter – 1) {
$paginate .= ‘<a href=”?p=’.$next.’”>next</a>’;
} else {
$paginate .= ‘<span>next</span>’;
}
$paginate .= ‘</div>’;
}
echo $paginate;
}
PHP函数上面有3个必需的参数- $页面,$ total_items,$限制 。下面写的SQL查询的格式会告诉你如何,我们将每当前页面显示结果。
$sql = “SELECT * FROM `posts` LIMIT {$start}, {$limit}”;
在这里,我们使用的是从我们的PHP代码开始 和$限制 变量。比方说,你是在第3页,每一页上显示的项目是10,上面的查询将会像一个如下图所示。
1
$sql= “SELECT * FROM `posts` LIMIT 20, 10″;
现在,使用下面的代码到任何你想去的更换所需的参数为你的代码在您的网页上显示分页链接。
1
pagination($page, $total_posts, $limit);
这是所有需要在您的网站上实现分页系统。搁笔前,我已经在下面一节中的分页链接粘贴示例CSS。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
@@ Pagination
*/
.paginate {
font-family: “arial”, sans-serif;
padding: 3px;
margin: 3px;
}
.paginate a {
padding: 2px 5px;
margin: 2px;
border: 1px solid transparent;
text-decoration: none;
color: #333;
}
.paginate a:hover, .paginate a:active {
border: 1px solid #ff0000;
background: #ff0000;
color: #fff;
}
.paginate span.current {
margin: 2px;
padding: 2px 5px;
border: 1px solid #000;
font-weight: bold;
background-color: #000;
color: #fff;
}
.paginate span.disabled {
padding: 2px 5px;
margin: 2px;
color: #ddd;
}
本教程结束。我希望你喜欢阅读这篇文章。
本文来自李新的博客 ,转载请注明出处。http://www.ilixin.net/406.html
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com