MYSQL数据传送时为何会出现这样的错误提示?

dcwang 2003-09-11 10:50:23
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htmlphp\11\11\list.php on line 21


list.php的代码如下:

<html>
<head>
<title></title>
</head>
<body bgcolor="#004784" text="#ffffff" >
<?php
if (isset($title)and isset($writer) and isset($text)) {
$con=mysql_connect("localhost","dcwang","dcwang");
mysql_select_db("bbs");
$query="insert into note(title,writer,text,id,created) values ('$title','$writer','$text',null,'$created')";
$stmt = mysql_query($query,$con);
mysql_close($con); }
$con=mysql_connect("localhost","dcwang","dcwang");
mysql_select_db("bbs");
echo "<table border='1' width='800' height='100'>";
$query="select title,writer,text,id,created ";
$query.="from note ";
$res=mysql_query("$query",$con);
if (empty($offset)) {
$offset=0;}
$number=mysql_num_rows($res); \\\\\\\\\\\\第21行
$see=$offset/15+1;
$all=$number/15;
$all=(int)$all+1;
$query="select title,writer,text,id,created ";
$query.="from note order by created limit $offset,15 ";
$result=mysql_query("$query",$con);
echo "<br>";
echo "<tr>";
echo "<tr>";
echo "<tr>";
echo "<tr>";
echo "<center><font size='3'>本讨论区有 $number 条贴子:(第 $see 页,共 $all 页)</font></center>";
echo "<td align='left'><font size='2'>序号</font></td>";
echo "<td align='left'><font size='2'>主题</font></td>";
echo "<td align='left'><font size='2'>作者</font></td>";
echo "<td align='left'><font size='2'>时间</font></td>";
echo "</tr>
<td>";?>
<form method="post" action="bbs.php">
<?php
$ttt=0;
while ($r=mysql_fetch_row($result)) {       \\\\第43行
$ttt++;
$title=$r[0];
$writer=$r[1];
$text=$r[2];
$id=$r[3];
$created=$r[4];
echo "<tr>"; ?>
<?php
echo "<td align='left'><font size='2'>$id</font></td>";
if ($title=='')
echo "<td align='center'><font size='2'>--</font></td>";
else
echo "<td align='left'><font size='2'><a href=text.php?id=$id>$title</a></font></td>";
if ($writer=='')
echo "<td align='center'><font size='2'>--</font></td>";
else
echo "<td align='left'><font size='2'>$writer</font></td>";
echo "<td align='left'><font size='2'>$created</font></td>";
echo "</tr>";}
echo "</table>";
mysql_close($con);
?>
<br>
<input type=submit name=submit value=发表文章>
</form>
<?php
if($offset>0)
{
$preoffset=$offset-15;
echo "<a href=list.php?offset=$preoffset>前一页</a> \n";}
if (($offset+15)<$number) {
$newoffset=$offset+15;
echo "<a href=list.php?offset=$newoffset>下一页</a> \n";
}
?>

</body>
</html>

...全文
202 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxf_1976 2003-09-12
  • 打赏
  • 举报
回复
第21行加个判断语句试试,

if ($res)
$number=mysql_num_rows($res);


一般在使用$con, $res等之前最好先作个判断,确定其是否可用!
lxf_1976 2003-09-12
  • 打赏
  • 举报
回复
呵呵,我说的是适合调试的方法,用了判断语句可以更好的定位错误原因!你的43行也一样,就如ezhou(煮花生) 所说的,是你的结果$result为空集造成的!

按我上面的做法,21行的提示没了,可能只是原来的21行没有执行了!

另,关于语法的几点建议:
1. 没必要连接两次,连接过程只要在开始进行,最后结束就行了!
2. 21行之前的语句“$res=mysql_query("$query",$con); ”,$query没必要加引号""!43行之前的那句也一样!
3. 和我上条回复一样,在使用$res之前,最好加判断其是否为空集,如果为空,打印一些自定义的出错信息,这样有利于定位出错原因!
dcwang 2003-09-12
  • 打赏
  • 举报
回复
我用了小木的方法确实上面的错误提示没了。但是43行的提示还在。43的错误提示与21一样。

另外花生所说的表的几项,我是在一个表单中输入数据,然后才转到这个页来显示的。

麻烦你们再帮我看看。谢谢!
ezhou 2003-09-12
  • 打赏
  • 举报
回复
你的表里是不是你查询的那几个项都存在啊?仔细检查一下,这个问题好像是你的结果并没有得到,不是sql语法错误。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧