<?php
$conn=mysql_connect("localhost","root","");
mysql_query("set names 'gb2312'");
mysql_select_db("test",$conn);
$result=mysql_query("select * from student",$conn);
?>
学号 | 姓名 | 得分 |
---|---|---|
=$row['sid']?> | = $row['sname']?> | =$row['grade']?> |
我想在上面的代码中添加一个对显示的数据进行分页的功能,每页显示额定条数,然后分页显示!有上下翻页的功能!
求代码,谢谢!!!
#
分页的方法:
1. 你要考虑怎么把页码关联到html元素上
比如用span元素,表示第9页:
<span>9</span>```
2. 你要考虑怎么在用户点击这个页码时,向服务端传递页码,这可以有两种方式
用html的`<a/>`标签来做:
```<a href="http://host:port/blog.aspx?pagenum=9">9</a>```
用javascript来做:
获取你的页码控件所关联的页码,get或者post你能处理分页记录返回的aspx页面或httphandler.
在服务端,你拿到了页码后,过程大概如下,伪代码描述:
//pageNum是页码,页码从1开始
//size是每页大小,一页都少个记录
//这个函数返回应该跳过多少个记录,记录来自数据库的表或者你其它数据集合
public int getSkipCount(int pageNum,int size) {
return (pageNum - 1) * size;
}
//这个函数返回你要的记录
public List getRecords(int pageNum,int pageSize) {
RetFromDatabase ret = database.poll(pageNum,pageSize);
}
public RetFromDatabase poll(int pageNum,int pageSize) {
//这个是你要跳过的数据
int SKIP_COUNT = getSkipCount(pageNum,pageSize);
int COVER_COUNT = SKIP_COUNT + pageSize;
//这里是你从数据库或其它数据源获取数据的代码
//如果你从sql中获取数据,会类似这样
/*
select user.id,tmp.total
from user
left join
/*COVER_COUNT = SKIP_COUNT + PAGE_SIZE */
(select top COVER_COUNT id,row_number() over (order by id) total
from user) as tmp
on user.id equals tmp.id
where user.id > SKIP_COUNT
*/
//如果你从其它数据源获取数据,会类似这样
db.user.find().sort({"_id":1}).skip(SKIP_COUNT).limit(pageSize);
}
//TRecord:你的记录类型
//这个类
public class RetFromDatabase<TRecord> {
public int total;
public IList<TRecord> records;
}
帮顶不算违规吧?这个都太专业了,不懂。
页面上加3个属性,pageNo(当前所在页的页数), pageIndex, pageSize 再做两个翻页的按钮,一个prev , 一个next, 翻页时:比如next, $result=mysql_query("select * from student limit(pageIndex, pageIndex+pageSize)",$conn); 然后再从新给pageNo, pageIndex 赋值, pageIndex += pageSize; pageNo++; prev时用减法。