`
呼延浩云
  • 浏览: 84972 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
69e5c1d2-1364-320a-a0f2-0de5143310d8
互联网的那点事
浏览量:10990
社区版块
存档分类
最新评论

怎么使用PHP和MySQL创建个性的网站分页

阅读更多

pagination

 

分页起着重要的作用,在任何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

分享到:
评论

相关推荐

    PHP MYSQL DreamWeaver网站建设经典案例.rar

    在构建动态网站的过程中,PHP和MySQL的组合是一个强大的...通过深入研究这些案例,不仅可以提升你的PHP编程和MySQL数据库操作技能,还能掌握使用DreamWeaver进行高效Web开发的技巧,进一步提升你的网站建设项目能力。

    PHP通用分页程序

    **PHP通用分页程序** 在Web开发中,数据量大的时候,为了...通过学习和使用“小贤PHP通用分页程序”,开发者不仅可以理解PHP分页的基本概念,还能掌握如何在实际项目中实现高效、安全的分页功能,提升网站的用户体验。

    关于PHP+MYSQL的视频教程--入门及其实践操作篇(提供BT种子)

    7. **动态网页制作**:通过PHP和MySQL,创建动态网页,展示数据库中的数据,实现用户交互功能,如搜索、分页和排序。 8. **文件操作**:了解如何使用PHP处理文件和目录,包括上传、下载、读取和写入文件。 9. **...

    flash+php+mysql留言本

    MySQL是一种开源、免费的关系型数据库管理系统,具有高性能、高可靠性及易于使用的特点。在这个应用中,它创建了一个或多个表来存储留言信息,如ID(主键)、用户名、留言内容、日期等字段。PHP通过SQL(结构化查询...

    PHP实例开发源码-php某QQ个性头像网源码.zip

    3. 图片展示与预览:网站需要展示已有的头像图片,可能需要使用PHP生成缩略图,提供预览功能,并实现分页显示大量图片。 4. 搜索与筛选:用户可以通过关键词搜索头像,或者按类别、热度等条件筛选。这需要PHP处理...

    留言板制作留言板制作留言板制作

    大多数情况下,我们会使用MySQL或SQLite等关系型数据库来存储留言信息。数据库设计包括创建一个表格,包含如id(主键)、name、email和message等字段。每当有新的留言提交,服务器端脚本会将这些信息插入数据库。 ...

    PHP版本汽车网站模板.rar

    它允许开发者创建动态、交互式的网页内容,且与MySQL等数据库系统配合良好,适合构建数据驱动的网站。这个汽车网站模板充分利用了PHP的优势,为开发者提供了预设的HTML结构、CSS样式和JavaScript交互,以便快速定制...

    毕业设计 计算机专业-PHP新闻网站系统

    【PHP新闻网站系统】是一种基于Web的动态内容管理系统,它主要使用PHP(Hypertext Preprocessor)编程语言进行开发,结合MySQL数据库存储数据,用于发布、管理与展示新闻资讯。这个系统是计算机专业学生在毕业设计中...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过Dreamweaver创建站点 47 实例028 通过Dreamweaver开发第1个PHP程序 48 1.7 ...

    基于php高端全屋实木定制类网站.zip

    【基于PHP高端全屋实木定制类网站开发】 在当今互联网时代,线上业务已经渗透到各行各业,...通过持续的技术优化和用户体验提升,这类网站能在竞争激烈的市场中脱颖而出,满足用户对个性化、高品质家居生活的追求。

    PHP网站模板,网站源码,带PHP后台:简洁圆角按钮产品企业网站模板_简洁 产品 展示 按钮 绿色 软件 企业.zip

    该压缩包文件包含了一个基于PHP的网站模板,特别适合...总的来说,这个PHP网站模板提供了一整套解决方案,用于快速搭建一个具有专业外观和功能的软件企业网站,同时也为开发者提供了足够的自定义空间以满足个性化需求。

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例024 Dreamweaver中创建和附加CSS样式 42 实例025 Dreamweaver控制弹出信息 45 实例026 Dreamweaver控制浏览器的窗口 46 实例027 通过Dreamweaver创建站点 47 实例028 通过Dreamweaver开发第1个PHP程序 48 1.7 ...

    贯通AJAX+PHP+Dreamweaver CS3动态网站开发

    例如,你可以使用PHP创建用户登录系统、实现数据验证、处理表单提交,甚至连接到MySQL或其他数据库以存储和检索信息。 Dreamweaver CS3在这个过程中起到了桥梁的作用,它提供了直观的界面,让开发者可以同时查看...

    PHP编程起步自学教程

    2. **连接与操作数据库**:教程会教授如何使用PHP的MySQLi或PDO扩展建立与MySQL服务器的连接,以及如何执行SQL语句(如SELECT、INSERT、UPDATE和DELETE)。 3. **预处理语句与事务**:预处理语句能有效防止SQL注入...

    PHP实例开发源码——爱迪达搞笑视频分享站php版 2.01.zip

    3. 数据库管理:为了存储视频信息、用户数据和其它站点内容,该网站可能使用了MySQL或其他关系型数据库管理系统(RDBMS)。PHP通过SQL语句与数据库进行交互,实现数据的增删查改操作。 4. 视频处理:视频分享站通常...

    php版仿豆瓣源码

    PHP需要根据用户ID获取个性化数据,同时可能包含动态加载、分页等技术。 7. URL路由: 路由系统是Web应用程序的重要组成部分,它负责解析URL并调用相应的控制器方法。PHP可以通过自定义路由函数或者使用框架如...

    基于PHP的WMCMS小说系统php版源码.zip

    总的来说,基于PHP的WMCMS小说系统是一个综合性的Web应用,旨在帮助开发者快速搭建和维护小说网站,同时为用户提供一个易于使用、功能丰富的在线阅读平台。通过理解和掌握这个系统的源码,开发者可以进行二次开发,...

    一个非常不错的php在线留言系统

    6. **安全性**:为了保护用户数据和网站安全,系统应具备防止跨站脚本攻击(XSS)、SQL注入和其他恶意活动的措施。例如,使用预处理语句进行数据库操作,对用户输入进行转义或过滤。 7. **响应式设计**:考虑到不同...

    基于PHP的漫画图片I6漫漫源码.zip

    2. **PHP与MySQL交互**:可能使用PHP的PDO或mysqli扩展来连接数据库,进行CRUD(创建、读取、更新、删除)操作,存储和检索漫画信息。 3. **MVC模式**:源码可能遵循Model-View-Controller架构,分离业务逻辑、数据...

Global site tag (gtag.js) - Google Analytics