php 中怎么分页?
我的数据库中的记录的 id 号是递增的,但中间有可能不连续,要做一个分页,不知有什么好的方案没有。 问题点数:100、回复次数:15Top
1 楼nethermit(网络隐士)回复于 2002-04-03 09:25:54 得分 5
先count一下
计算相应的page
然后limit一下Top
2 楼songbai(O'Sanile)回复于 2002-04-03 09:46:26 得分 0
呵呵,不好意思,我的数据是 SQL SERVER 的Top
3 楼52net(逍遥)回复于 2002-04-03 10:42:05 得分 0
其实原理是一样的。先要取出符合条件的记录。然后分别计算总的 的记录数,然后是总的也数,根据每页的记录数目。作了准备工作以后,就是设置各页,即页面。
以前用ASP+SQLSERVER的时候就是用此方法。当然还要用到其他的语句。循环肯定是有的。
Top
4 楼bombshell(水中鱼)回复于 2002-04-03 11:06:11 得分 0
我的论坛有个分页显示的类,参考一下吧。
http://chinesehis.com/starry/index.phpTop
5 楼netpirate(海盗)回复于 2002-04-03 11:22:18 得分 0
设置一下总条目数,每页的显示条数,总页面数,是否显示首页/尾页,sql的limit就ok了,以前版里有人写过一个分页的类,你搜一下吧!^_^Top
6 楼songbai(O'Sanile)回复于 2002-04-03 11:23:30 得分 0
52net(逍遥),我也知道原理,我不知道怎么做的是怎么取出符合条件的记录,就是当前页应该取出哪些记录。比如我一页要显示十条,第三页里,我要显示的可能是 ID 为 45, 47, 48, 49, 52, 53, 54, 55, 56, 58 这十条。怎么才能取出第一个 45 的 ID 和最后一个 58 的 ID,呢,取出来我就可以用 between 了。Top
7 楼qsnake(开工)回复于 2002-04-03 12:46:01 得分 0
如果是mysql
$offset = 45;
$sql = "select * from table limit $offset,10";Top
8 楼nethermit(网络隐士)回复于 2002-04-03 12:51:26 得分 0
用limit好Top
9 楼songbai(O'Sanile)回复于 2002-04-03 15:28:22 得分 0
我已经说了啊,我是的 SQL SERVERTop
10 楼songbai(O'Sanile)回复于 2002-04-05 20:38:01 得分 0
能不能用存储结构?Top
11 楼hqywork(华奇英)回复于 2002-04-05 20:54:03 得分 0
如果你用的是MYSQL数据库可以用select 的limit来完成Top
12 楼songbai(O'Sanile)回复于 2002-04-05 21:06:37 得分 0
我知道 mysql 怎么搞,就是不知道用 SQL Server 怎么办。我已经有一个分页的 sql server 的存储过程了,我想在 PHP 里调用,不知道怎么做Top
13 楼anfield(liverpool)回复于 2002-04-06 03:39:36 得分 0
讲起来比较复杂,我用的是 ms sql server,所以要建立“游标”在进行分业,如果使用mysql,原理差不多,只不过更方便,直接用“limit”语句就行了。Top
14 楼loveun(皋皋)回复于 2002-04-06 12:31:50 得分 5
告诉你最关键的地方!其他地方你都知道了!
".$page*$Maxperpage."
$Maxperpage=每页显示记录数
$page=当前的页
$sql="select top ".$page*$Maxperpage." TrueName from table_name order by uoaccount desc";
$result=mssql_query($sql,$conn);
这个下面还要加个条件
if($page>1) mssql_data_seek($result,($page-1)*$Maxperpage);
下面的简单了Top
15 楼aph(心往)回复于 2002-04-06 15:00:54 得分 90
$strSQL = "select count(*) from guestbook";
$query = odbc_do($conn, $strSQL);
$mess_count = odbc_result($query, 1);
$page_size = 10;
$page_count = ceil($mess_count / $page_size);
echo "第 ";
for ($i=1; $i<=$page_count; $i++ )
{
echo " <a href=\"?page=$i\">$i</a> ";
}
echo " 页";
if ($page == 0)
{
$page = 1;
}
$start_id = $page_size * ($page - 1);
$end_id = $page_size * $page;
if ($end_id > $mess_count)
{
$end_id = $mess_count;
}
$strSQL = "select username, email, homepage, message, convert(nchar(19), writetime, 120) view_write_time from (select top " . ($end_id - $start_id) . " * from (select top " . $end_id . " * from guestbook order by id asc) as a order by id desc) as b order by id desc";
$query = odbc_do($conn, $strSQL);
Top




