如何解决这个PHP警告?
我在我的代码得到这样的警告:如何解决这个PHP警告?
警告:mysql_fetch_array()预计 参数1是资源,串 在 C中给出:\ XAMPP \ htdocs中\ Join.php上 线69
但我无法确切地确定问题出在哪里。 你能帮我在这段代码发现错误:
<?php
51. include("connect.php");
53. $email = mysql_query("select MemberEmail from members where MemberID= '$id' ");
54. while ($row = mysql_fetch_array($email))
55. {
57. $memEmail=$row['MemberEmail'];
}
62. $sql = mysql_query("select * from ninvite where recieverMemberEmail ='$memEmail' and viwed= '0' order by RoomID desc");
64. $num =mysql_num_rows($sql);
67. if ($sql and $num >0)
{
69. while($row=mysql_fetch_array($sql))
{
71. $sender=$row['SenderMemberID'];
73. $room=$row['RoomID'];
77. $sql2 =mysql_query("select MemberName from members where MemberID ='$sender' ");
78. $sql1 =mysql_query("select RoomName,RoomLogo from rooms where RoomID ='$room' ");
79. while($row=mysql_fetch_array($sql2))
{
$mem =$row['MemberName'];
}
84. while($rows=mysql_fetch_array($sql1))
{
$Ro =$rows['RoomName'];
$logo = $rows['RoomLogo'];
}
89. ?>
<form action="" method="post">
<table align="center">
<tr>
<td colspan="3">
<input type="hidden" name="invite_id" value="<?php echo $room; ?>" />
<label>
</label> <br/>
<label> <?php echo "
you have invite from $mem to join $Ro "; ?> </label>
<br/>
<label>accept</label>
<input name="radio1" type="radio" value="accpet" />
<label>reject</label>
<input name="radio1" type="radio" value="Reject" /><br/><br/>
<input align="" type="submit" name="submit" value="submit" />
</td>
<td colspan="3">
<?php echo "<p align=''><img width='90' height='90' src='" .$logo. "' alt='' /></p>"; ?>
</td>
</tr>
</table>
</form>
<?php
if (isset ($_POST['submit']))
{
// connect to the mysql server
include ("connect.php");
// insert the data
$button=$_POST['radio1'];
$room = $_POST['invite_id'];
if ($button=='Reject')
{
mysql_query("INSERT INTO joinroom (MemberID, RoomID) VALUES ('$id', '$room')");
$sql = ("DELETE FROM ninvite WHERE RoomID = '$room'");
$R=mysql_query($sql);
// print a success message
echo " <center> success join this team <br></center>"; }
else
{
echo "<center> reject this invite /center> ";
$sql = ("DELETE FROM ninvite WHERE RoomID = '$room' ");
$R=mysql_query($sql);
}
echo " <meta http-equiv=\"refresh\" content=\"3;URL=Join2.php\">";
} } }
?>
非常感谢!
不应该viwed
是viewed
?
select *
from ninvite
where recieverMemberEmail = '$memEmail'
and viewed = '0'
order by RoomID desc
直到我看到'ninvite'和'recieverMemberEmail',我只是不在乎。 – webbiedave 2010-05-21 22:25:00
@webbiedave:啊,它应该是'receiverMemberEmail'。 – 2010-05-21 22:28:30
我很惊讶你没有收到第64行(它也期望资源)的错误。第62行的SQL正在数据库中产生一个错误。暂时将其更改为:
$sql = mysql_query("select * from ninvite where recieverMemberEmail ='$memEmail' and viwed= '0' order by RoomID desc") or die(mysql_error());
并检查打印的错误消息。
你改变了,但是,打印的错误信息仍然是警告:mysql_fetch_array()期望参数1是资源,字符串给出在第69行的C:\ xampp \ htdocs \ Join.php – user318068 2010-05-21 22:32:54
然后我们需要看到更多的代码。您缺少可能容纳密钥的行。 – webbiedave 2010-05-21 22:41:13
我添加完整的代码 – user318068 2010-05-21 22:55:01
$sql = mysql_query("select * from ninvite where recieverMemberEmail ='$memEmail' and viwed= '0' order by RoomID desc");
我想,一定是这样的:
$sql = mysql_query("select * from ninvite where recieverMemberEmail ='".$memEmail."' and viwed= '0' order by RoomID desc");
67行应该是:
if ($sql && $num >0)
不
if ($sql and $num >0)
你的问题是在行:
$sql = ("DELETE FROM ninvite WHERE RoomID = '$room'");
,因为你没有关闭已打开管线70 while循环的支柱
的可能重复[警告:mysql_fetch_ *预计参数1是资源,布尔给定的错误(HTTP://计算器.com/questions/11674312/warning-mysql-fetch-expect-parameter-1-to-resource-boolean-given-error) – 2012-07-28 16:39:19