请教查询结果分页显示的问题

yijian1 2002-05-14 09:43:50
不好意思,本人是php新手。问个问题,查询结果一条记录为一页,
这样的分页显示怎么做,最好有代码。
...全文
50 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
winkiky 2002-09-03
在oracle里你怎么用呢??limit无效阿!!
回复
leshui 2002-08-31
LIMIT子句可以被用来限制SELECT语句返回的行数。LIMIT取1个或2个数字参数,如果给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
mysql> select * from table LIMIT 5,10; # Retrieve rows 6-15

如果给定一个参数,它指出返回行的最大数目。

mysql> select * from table LIMIT 5; # Retrieve first 5 rows

换句话说,LIMIT n等价于LIMIT 0,n。
回复
esaler 2002-05-14
刚调好的!

<?php
include"include/config.inc.php";
include"include/connect.php";
?>

<?php
/*
这些代码是用于MYSQL的,但很容易移植到其它SQL上。

由于每个程序的特殊性,所以我在MYSQL的查询里使用了一些很通用的语句。用你的表名替换TABLE;用你的条件语句代替YOUR_CONDITION_HERE;用你希望按其排序的字段名代替WHATEVER(当然如果要排倒序,别忘了加上DESC子句)。
*/


$qh=mysql_query("SELECT COUNT(*) AS rcnt FROM mygbook ORDER BY id desc");

$data=mysql_fetch_array($qh);

$nr=$data["rcnt"];

//判断偏移量参数是否传递给了脚本,如果没有就使用默认值0

if (empty($offset))
{
$offset=0;
}
//查询结果(这里是每页20条,但你自己完全可以改变它)

$result=mysql_query("SELECT * FROM mygbook ORDER BY id desc LIMIT $offset,20") or die("error");
//显示返回的20条记录
while ($data=mysql_fetch_array($result))
{
echo "$data[id]<br>";
}
//下一步,要写出到其它页面的链接

if($offset) //如果偏移量是0,不显示前一页的链接
{

$preoffset=$offset-20;
print "<a href='$PHP_SELF?offset=$preoffset'>前一页</a> ";
}
//计算总共需要的页数
$pages=ceil($nr/20); //$pages变量现在包含所需的页数
for ($i=1;$i <=$pages; $i++)
{
$newoffset=20*$i-20;
print "<a href='$PHP_SELF?offset=$newoffset'>$i</a> ";
}
//检查是否是最后一页
if ($pages!=0 && (($offset/20)+1)!=$pages)
{
print "<a href='$PHP_SELF?offset=$newoffset'>下一页</a> ";
}
//这只是向你大概地介绍了实现将查询结果分页显示的方法,其他的功能你自己完成
//注意两点:$PHP_SELF只有偏移量一个参数,你可以根据需要加入自己的东西;这种办法对包含百万条记录以上的表的查询效率不高。
?>
回复
szsailing 2002-05-14
在论坛里搜索一下 分页
你就会得到你所要的
回复
sunblue 2002-05-14
有谁知道limit的工作过程,偶想移到sql server上
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2002-05-14 09:43
社区公告
暂无公告