俺是new phper~~ 弄了一个简单的留言本,在写 管理模块时遇到了一些问题,请各位高手帮忙~症状是输入 管理员姓名 跟密码 后显示:   Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Apache2\htdocs\admin_check.php on line 16
登陆失败 数据库表:
字段: id(int11)   adminname(varchvr)  adminpassword(varchvr)管理登录页:
<html>
<head>
<title>管理后台</title>
<meta http-equiv="Content-Type" c>
</head>
<body>
<h1><p align="center">管理员登录</p></h1>
<form name=form2 method="post" action="admin_check.php">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>姓名:</td>
<td><input name="name" type="text" id="name" size="28"></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="password" type="password" id="password" size="30"></td>
</tr>
</table>
<p align="center">
<input type="submit" value="管理员登录">
</form>
<br><br><br>
留言板 Version 1.0
</p>
</form>
</body>
</HTML>管理验证页:
<?php
$admin_name=$_POST['name'];
$admin_password=$_POST['password'];  // 提交的用户名和密码都能输出$dbhost = 'localhost';
$dbuser = 'root';
$dbpw = '';
$dbname = 'guest_book';       $link=mysql_connect("$dbhost","$dbuser","$dbpw");
mysql_select_db($dbname);$sql="select * from admin where adminname=".$admin_name;              
echo $sql;exit;                   //输出$sql语句 正常$result=mysql_query($sql);                      
$rs=mysql_fetch_array($result);
echo $rs[2];exit;               // 此语句没有值输出,提示出错,如上所说if ($rs[2]!=$admin_password)echo"登陆失败";
else echo"登录成功!";mysql_close();
?> 

解决方案 »

  1.   

    ...说明没有查找到 符合sql条件的 数据 返回的资源为空。。 也就是登入失败。 修改抱错等级 
      

  2.   

    查询语句失败,mysql没有找到数据,修改一下                    
    $rs=mysql_fetch_array($result);
    这个最好用while写
      

  3.   

    多谢各位 问题解决了,SQL语句写错了,应该 $sql="select * from admin where adminname='".$admin_name."'"; 而不是".$admin_name;    但不大清楚为什么要写成 '".$admin_name."'"   ,希望各位高手帮忙解释 
      

  4.   

    因为你高牟类型是varchar是字符型 字符当然有字符的样子
    举个列吧,如'aaaa' 'anncd' "adfdf"
    都是字符型
    可是为什么必须要加那个''或""呢
    比如说
    如果一个字符串为'10000' 当你加了引号它就是字符,如果不加他就是整型变量
    为了防止此种情况,所以约定,字符要加引号
    所以当你不加引号的时候,系统会认为你传入的是一个整型变量,而你的字段类型是字符型,当然通不过
    不晓的我绕来绕去的说你清楚了没有
    呵呵