2010-05-21 215 views
0

我在我的代码得到这样的警告:如何解决这个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\">"; 

} } } 

?> 

非常感谢!

+0

的可能重复[警告:mysql_fetch_ *预计参数1是资源,布尔给定的错误(HTTP://计算器.com/questions/11674312/warning-mysql-fetch-expect-parameter-1-to-resource-boolean-given-error) – 2012-07-28 16:39:19

回答

2

不应该viwedviewed

select * 
from ninvite 
where recieverMemberEmail = '$memEmail' 
and viewed = '0' 
order by RoomID desc 
+0

直到我看到'ninvite'和'recieverMemberEmail',我只是不在乎。 – webbiedave 2010-05-21 22:25:00

+0

@webbiedave:啊,它应该是'receiverMemberEmail'。 – 2010-05-21 22:28:30

0

我很惊讶你没有收到第64行(它也期望资源)的错误。第62行的SQL正在数据库中产生一个错误。暂时将其更改为:

$sql = mysql_query("select * from ninvite where recieverMemberEmail ='$memEmail' and viwed= '0' order by RoomID desc") or die(mysql_error()); 

并检查打印的错误消息。

+0

你改变了,但是,打印的错误信息仍然是警告:mysql_fetch_array()期望参数1是资源,字符串给出在第69行的C:\ xampp \ htdocs \ Join.php – user318068 2010-05-21 22:32:54

+0

然后我们需要看到更多的代码。您缺少可能容纳密钥的行。 – webbiedave 2010-05-21 22:41:13

+0

我添加完整的代码 – user318068 2010-05-21 22:55:01

0
$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"); 
0

67行应该是:

if ($sql && $num >0) 

if ($sql and $num >0) 
0

你的问题是在行:

$sql = ("DELETE FROM ninvite WHERE RoomID = '$room'"); 

,因为你没有关闭已打开管线70 while循环的支柱