设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
你应该知道的PHP+MySQL分页那点事
返回列表
查看:
360
|
回复:
0
你应该知道的PHP+MySQL分页那点事
[复制链接]
新格网络
当前离线
积分
7789
2617
主题
2617
帖子
7789
积分
论坛元老
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
论坛元老, 积分 7789, 距离下一级还需 9992210 积分
积分
7789
发消息
电梯直达
楼主
发表于 2018-2-14 05:33:35
|
只看该作者
|
倒序浏览
|
阅读模式
俗话有云“工欲善其事,必先利其器”,我们今天要使用PHP来实现分页。那么我们首要的任务就是搭建PHP的工作环境。
环境准备
使用PHP技术,最好的搭档就是AMP(Apache,MySQL,PHP),现在有很多集成好的环境,例如WAMP,XAMPP,phpnow等等。但是今天我来手动的搭建一套PHP 的工作环境。
Apache
我们首先需要到Apache的官网上下载Apache server。最好是能下载msi版本的,因为这样我们就可以不用手动的配置各种环境了。
Apache下载地址
:一个msi版本的ApacheServer,快速搭建PHP服务器环境的首选。
MySQL
作为数据库界有名的开源项目MySQL现如今也被Oracle收购了,不知道今后会不会收费。但是目前而言,PHP开发最好的选择就是MySQL了。这个无需多言,现附上下载地址。
MySQL下载地址
在安装过程中,切记要牢记用户名及密码。
PHP
有人说PHP不是一门语言,而是一个框架,一个连接MySQL的客户端实现。我仔细的想了想,好像也是有那么点道理。但是如果这样说来,有很多的语言都算不上是语言了。php作为平民英雄,其进步之大众所周知。下面附上php的下载地址,免得再去单独寻找。
PHP下载地址
:msi版本的PHP,无需手动配置环境即可实现php的快速搭建
工作环境
我们安装好了上面的三个软件之后,就可以正式的开始环境搭建了。我们目前而言只需要知道的就是我们的工作目录就在Apache的htdocs文件夹下,作为虚拟目录的htdocs是由apache配置文件维护的,我们以后慢慢的会接触到。
切记是在apache的安装目录下的htdocs文件夹。
数据库准备
环境虽然搭建好了,但是要想做分页。首先得有数据不是。”巧妇难为无米之炊“。下面咱们就来准备一下数据。
建库
建库语句 create database my_database_name;
这里就使用MySQL安装时自带的mysql数据库好了。也省事一点。
建表
数据的仓库依然建好了,现在我们要”分隔房间“,也就是数据存放地,表。
create table table_name(···);
同样这里为了偷懒使用自带的数据库表。详细信息如下:
mysql> use mysql
Database changed
mysql> desc innodb_table_stats;
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
| database_name | varchar(64) | NO | PRI | NULL | |
| table_name | varchar(64) | NO | PRI | NULL | |
| last_update | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| n_rows | bigint(20) unsigned | NO | | NULL | |
| clustered_index_size | bigint(20) unsigned | NO | | NULL | |
| sum_of_other_index_sizes | bigint(20) unsigned | NO | | NULL | |
+--------------------------+---------------------+------+-----+-------------------+-----------------------------+
预存数据
为了演示的方便,我们需要预存一些数据。具体使用批量导入还是手动添加都无所谓。核心还是
insert into table_name(···) values(···);
例如,我们存储好的数据如下:
mysql> select * from innodb_table_stats;
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| database_name | table_name | last_update | n_rows | clustered_index_size | sum_of_other_index_sizes |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
| fams | admin | 2016-07-19 14:47:02 | 3 | 1 | 0 |
| fams | assets_in | 2016-07-14 14:42:44 | 2 | 1 | 3 |
| fams | assets_out | 2016-07-14 20:14:31 | 4 | 1 | 3 |
| fams | class | 2016-07-14 14:36:02 | 3 | 1 | 0 |
| fams | dog | 2016-08-11 15:25:50 | 4 | 1 | 0 |
| fams | fixed_assets | 2016-07-14 15:55:09 | 6 | 1 | 2 |
| fams | sub_class | 2016-07-14 14:38:51 | 8 | 1 | 1 |
| fams | user | 2016-07-14 14:15:59 | 2 | 1 | 0 |
| mysql | gtid_executed | 2016-07-14 12:50:25 | 0 | 1 | 0 |
| privilegesystem | privilege | 2016-08-08 08:56:21 | 3 | 1 | 0 |
| privilegesystem | role | 2016-08-08 08:26:56 | 2 | 1 | 0 |
| privilegesystem | role_privilege | 2016-08-08 09:51:04 | 2 | 1 | 1 |
| privilegesystem | user | 2016-08-08 11:07:35 | 2 | 1 | 0 |
| privilegesystem | user_role | 2016-08-08 11:08:15 | 2 | 1 | 2 |
| sys | sys_config | 2016-07-14 12:50:30 | 6 | 1 | 0 |
| test | datetest | 2016-07-19 10:02:38 | 2 | 1 | 0 |
+-----------------+----------------+---------------------+--------+----------------------+--------------------------+
16 rows in set (0.00 sec)
PHP拓展准备
如果是非msi版本的安装的话,我们需要手动的开启PHP的拓展,这样才能使用mysql的一些函数来操作数据库。
php.ini
该文件位于php的安装目录。我们需要把下面代码前面的分号去掉即可。
[PHP_MYSQL]
extension=php_mysql.dll
[PHP_MYSQLI]
extension=php_mysqli.dll
在PHP的ini文件中,注释是;
分页原理
”万事俱备只欠东风“,现在就来说说分页的核心思想。
那就是当前页,页面大小,总记录数。这三个通过总记录数和页面大小,我们就可以计算出总的页数。然后根据当前页来实现对应的显示。
总记录数
// 获取总的记录数
$sql_total_records = "select count(*) from innodb_table_stats";
$total_records_result = mysql_query($sql_total_records);
$total_records = mysql_fetch_row($total_records_result);
echo "总的记录数位: ".$total_records[0]."
";
当前页
// 通过GET方式获得客户端访问的页码
$current_page_number = isset($_GET['page_number'])?$_GET['page_number']:1;
if($current_page_number$total_pages){
$current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;
分页核心
// 获取到了要访问的页面以及页面大小,下面开始分页
$begin_position = ($current_page_number-1)*$page_size;
$sql = "select * from innodb_table_stats limit $begin_position,$page_size";
$result = mysql_query($sql);
就这样我们就可以拿到自己想要的结果集了。接下来的就是如何在页面上进行展示而已。
页面展示
// 处理结果集
echo "Mysql Fixed Assets Table";
echo "DbNameTableNameLast_updaten_NowsClustered_Index_SizeSum_od_Other_Index_sizes";
while(($row = mysql_fetch_row($result))){
echo "";
echo "".$row[0]."";
echo "".$row[1]."";
echo "".$row[2]."";
echo "".$row[3]."";
echo "".$row[4]."";
echo "".$row[5]."";
echo "";
}
echo "";
// 循环显示总页数
?>
分页实现
了解了上面的内容之后,下面来看一下这个完整的例子吧。
代码SlicePage.php
$total_pages){
$current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;
// 获取到了要访问的页面以及页面大小,下面开始分页
$begin_position = ($current_page_number-1)*$page_size;
$sql = "select * from innodb_table_stats limit $begin_position,$page_size";
$result = mysql_query($sql);
// 处理结果集
echo "Mysql Fixed Assets Table";
echo "DbNameTableNameLast_updaten_NowsClustered_Index_SizeSum_od_Other_Index_sizes";
while(($row = mysql_fetch_row($result))){
echo "";
echo "".$row[0]."";
echo "".$row[1]."";
echo "".$row[2]."";
echo "".$row[3]."";
echo "".$row[4]."";
echo "".$row[5]."";
echo "";
}
echo "";
// 循环显示总页数
?>
结果初始页为:
点击页码
下一页
总结
分页是一个很实用的技术,相比较于Java的实现,PHP实现起来灵活性还是很高的。解放了繁琐的面向对象的编程,在思路清晰的时候确实能给人以美感。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
默默小谈PHP&MYSQL分页原理及实现
分页详解 从此分页无忧(PHP+mysql)
php+mysql分页代码详解
mysql+php分页类(已测)
php5 mysql分页实例代码
php mysql数据库操作分页类
php MySQL与分页效率
php下巧用select语句实现mysql分页查询
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
PHP使用Mysqli类库实现完美分页效果的方法
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端