php分页中产生的问题,困扰了很长时间。

代码是,可是我运行后出现Warng:mysql_fetch_array():suppliedargumentisnotavalidMySQLresultresourcei... 代码是,可是我运行后出现
Warng: mysql_fetch_array(): supplied argument is not a valid MySQL
result resource inF:\wamp5\wamp\www\bbs\list.phpon line27
什么意思呀,怎么改呀??求助。

<?php
include("conn.php");
include("head.php");
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=GB2312" />
</head>
<body>
<h1 align="center">bbs留言板</h1>
<table align="center" border="2">

<?php
$pagesize=5;
if($_GET[page]) { //若点击page
$pagevalue=$_GET[page];
$page=($pagevalue-1)*$pagesize; //计算出从第几条数据开始输出,传递给数据库语句
$page.=",";
}

$sql="SELECT * FROM message LIMIT $page,$pagesize";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query))
{
?>
<tr><td bgcolor="#66FFFF">标题:<? echo $row[title];?></td></tr> <!--其中的等于号已经代表着echo,即表示将title进行输出-->
<tr><td>用户:<?=$row[user];?></td></td> <!--sql语句其中的分号写不写无所谓,因为最后一条语句执行到?>即表明结束,和其他语言不一样-->
<tr><td>内容:<?=$row[content];?></td></tr>
<?php
$url=$_SERVER['REQUEST_URI']; //取得当前页的地址path
$qu="SELECT * FROM message";
$num=mysql_query($qu);
$sum=mysql_num_rows($num); //统计出所有数据的总数
if($sum>$pagesize){ //判断是否总数小于我们设置的分页的条数
if($pagevalue<=1){ //我们的页数不可能小于0,所以,要判断
$pagevalue=1;
echo "共有 $sum 条,<a href=$url?page=".($pagevalue-1).">上一条</a>,<a href=$url?page=".($pagevalue+1).">下一页</a>"; //为什么href后的地址不需要用双引号引起来??
}
}
?>
<?php
}
?>
</table>
</body>
</html>
展开
 我来答
jiangxibaiyi
2013-05-05 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
错得不得了,php分页的原理,其实很简单,就是sql语句的关键字, limit
这个关键字可以有2个参数,也可以1个参数
第一个参数可以缺省而默认从0开始
但在分页中,这2个参数必须传入
而你看看你的sql语句,根本就没有传入,造成sql语句错误,而无法返回数据源,那么mysql_fetch_array函数当然会出错

其实计算出这个2个参数很简单
首先,设置一个变量每页显示多少条,就按照你的吧
$pagesize = 5;
然后取得当前页号,也就是当前在第几页,如果没有这个参数或者参数不是数字或者参数小于1,就把他设置为1:
$page = $_GET['page'];
$page = empty( $page) || !is_numeric( $page) || $page < 1 ? 1 : $page;
然后根据当前页号计算出从第几条数据开始返回,计算方法是当前页号减掉1再乘以每页返回多少条:
$pageNum = ($page - 1 ) * $pagesize;
然后拼接sql语句:
$sql="SELECT * FROM message LIMIT $pageNum,$pagesize";
这样,这条sql语句就是正确的,那当然就能mysql_query()执行成功了,那么mysql_fetch_array()当然也能运行成功
TableDI
2024-07-18 广告
**Excel表格中的COUNTIF函数**在Excel表格中,`COUNTIF`函数是一个强大的工具,用于统计满足特定条件的单元格数量。这个函数的基本语法是`=COUNTIF(range, criteria)`,其中`range`表示要统... 点击进入详情页
本回答由TableDI提供
人累了心伤透了0fI
2013-05-05 · TA获得超过186个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:239万
展开全部
$query=mysql_query($sql);
改成
$query=mysql_query($sql) or die(mysql_error());
看看是什么错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rghanbing
2013-05-05 · TA获得超过498个赞
知道小有建树答主
回答量:701
采纳率:0%
帮助的人:648万
展开全部
$sql="SELECT * FROM message LIMIT $page,$pagesize";
你可以echo一下这句看看sql语句是怎样的,再去数据库查查到底能不能查到数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我真的不才
2013-05-05
知道答主
回答量:31
采纳率:0%
帮助的人:11.9万
展开全部
sql未返回结果集,把你的sql拿到phpmyadmin执行看看什么结果
追问
呃,能具体一点嘛?新手,没看懂。谢谢了!
追答
phpmyadmin是管理mysql数据库服务器的一个很方便的东西,简单来说就是管理数据库的,安装后,把你的sql语句复制到sql框里面运行一下,看看sql有没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式