PHP实例——分页技术
来源:互联网 发布:淘宝巧克力 编辑:程序博客网 时间:2024/05/19 19:41
这周做了个分页,虽说代码不长,但理解起来还是有一定难度的。就把中间碰到的一系列问题以及自己的解决过程记录下来吧。
实现分页需要两个文件。
pDivided.php用来显示第一页的内容、连接数据库、包括一些数据库的操作方法以及页数$P
(本页中$p的值默认为1)的传递。
index.php用来显示其他页数,接受$p
参数,在URL中显示当前页数。
效果如下:
首先是数据库的连接(之前做过一次了,所以问题不大 )
设置每页显示的留言数$pagesize(设置的3)
确定页数p参数$p = $_GET['p']?$_GET['p']:1
这里是一个条件表达式,先用$_GET[]
方法获取URL中p值,若p不存在(未通过超链接打开的页面即第一页没有p),则将1赋给$p;
创建数据指针$offset
通过$offset的值来控制本页显示的数据
//数据指针$offset = ($p-1)*$pagesize;//查询本页显示的数据$query_sql = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $offset , $pagesize";
循环输出
while($gblist = mysql_fetch_array($result)){ echo '<a href="',$gblist['nickname'],'">',$gblist['nickname'],'</a>'; echo '发表于:',date("Y-m-d H:i", $gblist[createtime]),'<br />'; echo '内容:',$gblist['content'],'<br /><hr />';}
计算总的页数和留言总数
//计算留言总数$count_result = mysql_query("SELECT count(*) as count FROM guestbook");$count_array = mysql_fetch_array($count_result);//计算总的页数$pagenum=ceil($count_array['count']/$pagesize);echo '共 ',$count_array['count'],'条留言';
最后是输出各页数目及超链接
if ($pagenum > 1) { for($i=1;$i<=$pagenum;$i++) { //若为当前页则加[]区别 if($i==$p) { echo ' [',$i,']'; } else { echo ' <a href="index.php?p=',$i,'">',$i,'</a>'; } }}
中文乱码问题:一开始把教程上的源代码下下来看一下效果,发现有的中文正常显示,有的则是乱码。为解决问题在php代码的一开始加上了header('Content-type:text/html;charset=utf-8');
这里我选用的是utf-8编码,因为网上有介绍说mysql最好用这种编码,所以我把配置文件my.ini也修改了一下。
[mysql]default-character-set=utf8[mysqld]default-character-set=utf8default-storage-engine=MyISAM在[mysqld]下加入:default-collation=utf8_bininit_connect='SET NAMES utf8'
另一种方法是在需要做数据库操作中的php程序前加my_query(“setnames‘编码’”);
,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是utf8,这样插入或检索数据时就不会出现乱码了 。
效果如下
乱码解决了,但是出现了NOTICE,虽不是致命错误,但是看起来非常不舒服,所以找到的答案是这样的。
关闭 PHP 提示的方法
搜索php.ini:
error_reporting = E_ALL
改为:
error_reporting = E_ALL & ~E_NOTICE
然而这个方法并没有在我的例子中起效果,┑( ̄Д  ̄)┍
—————————————————————————————————————————
这是一条更新分割线
在第二次打开wampserver时,程序图标呈现黄色,并且mysql无打开
上网找了一下,发现有些答案提及到编码问题,所以应该是自己有些地方改多了,内部编码方式被修改导致数据库打不开。所以将修改的my.ini的代码全部注释掉。方法可行,而且不影响中文留言的显示,唉,只能说别人的方法并不一定能完全解决自己的问题,有时还可能带来不必要的麻烦。
好吧,就到这里。
- PHP实例——分页技术
- PHP学习实例—6(完美分页类)
- PHP+Mysql————数据分页显示技术
- PHP简单分页实例
- PHP分页实例代码
- php分页技术
- PHP分页技术详解
- PHP分页技术详解
- php分页技术
- PHP分页技术
- PHP分页技术原理
- PHP分页技术
- php分页技术
- [PHP实例] PHP分页类
- PHP分页代码 PHP分页类 PHP分页实例
- 分页技术--sublist分页的实例
- php封装分页类+分页实例
- PHP分页原理及实例
- 控件抖动配合手机震动
- 分层窗口实现细节,UpdateLayeredWindow的使用问题
- python 跨平台属性注意
- Android 数据库操作
- Android ContentProvider数据共享全解析
- PHP实例——分页技术
- Hibernate二级缓存的并发访问策略
- [iOS]从相册获取以及用相机拍摄视频并缓存到沙盒
- 顺序存储与链式存储的集合-HashMap、HashTable
- BuildConfig的使用
- 数据结构实验之图论六:村村通公路
- iSO 集合遍历常用的方法和比较
- Adapter详解
- 高德地图---云图上传数据的坑