/*
Author:默默
Date :2006-12-03
*/
$page=isset($_GET['page'])?intval($_GET['page']):1//这句就是获取page=18中的page的值,假如不存在page,那么页数就是1。
$num=10//每页显示10条数据
$db=mysql_connect("host","name","pass")//创建数据库连接
$select=mysql_select_db("db",$db)//选择要 *** 作的数据库
/*
首先咱们要获取数据库中到底有多少数据,才能判断具体要分多少页,具体的公式就是
总数据数除以每页显示的条数,有余进一。
也就是说10/3=3.3333=4 有余数就要进一。
*/
$total=mysql_num_rows(mysql_query("select id from table"))//查询数据的总数,id是数据库中的一个自动赋值的字段
$pagenum=ceil($total/$num)//获得总页数
//假如传入的页数参数大于总页数,则显示错误信息
If($page>$pagenum || $page == 0){
Echo "Error : Can Not Found The page ."
Exit
}
$offset=($page-1)*$num//获取limit的第一个参数的值,假如第一页则为(1-1)*10=0,第二页为(2-1)*10=10。
$info=mysql_query("select name from table limit $offset,$num")//获取相应页数所需要显示的数据,name是数据里的一个字段
While($it=mysql_fetch_array($info)){
Echo $it['name']."
"
} //显示数据
For($i=1$i<=$pagenum$i++){
$show=($i!=$page)?"$i":"$i"
Echo $show." "
}
/*显示分页信息,假如是当页则显示粗体的数字,其余的页数则为超连接,假如当前为第三页则显示如下
1 2 3 4 5 6
*/
?>
告诉你步骤吧:第一:在数据库中统计conut数,然后就能知道有多少条记录,然后除以每页最大显示条数,就能得到有多少页了。
第二:使用Sql语句进行分页 *** 作,比如有表Users,主键是UID,因此SQL语句如下:
select top () * from Users where UID not in (select top () UID from Users)
两个top后面的()是数字,第一个是当前要显示多少条记录,然后第二个是当前第几页,是通过计算得到,为最大显示条数 * 当前页数即可~
最后得到的数据显示在页面上即可~
1、首先我们建立一个表表的数据,这个表里有25条数据,id从1到25。(下图是部分截图)
2、要分页数据,首先我们假设一页有10条数据,我们可以用mysql的 limit关键字来限定返回多少条数据。并且用order by来排序数据,这里用 id来排序。所以第一页的sql可以如图这样写。
3、执行后得到的数据如图,就是 id从1到10的前10条数据,因为我们是按id升序来排序的。
4、上面第一页的sql是简化的写法,完整的写法如图,得到的结果和上图的一模一样。代码里 limit 0, 10 的意思是从第一条数据开始,取10条数据。(注意的是第一条数据是从0开始的)
5、那么第二页的数据,关键是要知道是从哪一条数据开始,可以用这个公式得到: (页码-1) * 每页显示多少条,即 (2-1) * 10 = 10, 所以sql语句如图, limit 10, 10。
6、执行后,结果正确,得到id从11到20的10条数据。
7、同理第三页数据的sql如图,<br/>就是 limit 20, 10。
8、查询的结果如图,因为这页只剩下5条数据了,所以只显示5条数据。如果你有更多页的数据,后面的数据只需要按上面的公式,得到从哪行开始,就可以写对应的sql语句了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)