index.php文件,用于登陆<html>
<head>
<title>IT渠道管理系统</title>
<!--
用户输入的验证JS代码
-->
<script language="javascript">
  <!--
  function check()
  {
   // 验证输入的姓名和密码
    j_name=user_login.user_name.value;
    j_pwd=user_login.pwd.value;
    if(j_name == "" || j_pwd == "")
    {
      alert("用户名或密码不能为空");
      return false;
    }
  }
  -->
</script>
</head>
   <body >
<div align="center">
<img src="images/index-bg.jpg"></img></br></br>
<!--
  登录表单
-->
<form name="user_login" method="post" action="user_login.php" onsubmit="return check();">
  用户名&nbsp;<input type="text" name="user_name"></input>
  &nbsp;密码&nbsp;<input type="password" name="pwd"></input>&nbsp;
    <input type="submit" value="登录"></input>
  </form>
</div>
</body>
</html>
用于验证的user_login.php<?
  // 验证用户名和密码是否有效
  // 1 验证用户名是否存在
  
  // 获取由index.php得到的用户名和密码 name分别为user_name 和 pwd
  $username=$_POST["user_name"];
  $pwd=$_POST["pwd"];
  // 引入连接数据库文件
  require("conn.php");
  $table="u_stuff";
  
  // 使用数据库it用户名验证
  echo "$username<br>";
  $sql="select * from $table where uname='".$username."'";
  echo "$sql<br>";
  $result=mysql_query($sql);
  print_r($result);
  // 获取查询结果
  $num=mysql_num_rows($result);
  echo "$row<br>";//测试是否能查到相应的名称
  
  
  
  // 关闭数据库
  mysql_close();
?>
conn.php 连接数据库文件<?
  // 连接用户数据库,对应数据库中u_stuff和u_login表
  $mysql_server="localhost";
  $user="root";
  $pwd="root";
  $db="it";
  // 连接mysql数据库
  $conn=mysql_connect($mysql_server,$user,$pwd);  // 测试连接是否成功
  if(!$conn)
  {
    echo "连接不成功,请向数据库管理员求助";
  }else
  {
    echo "连接成功<br>";
  }
  // 连接数据库it
  mysql_select_db($db) or die("cannot select DB");
?>
使用张三用户名登陆后,出现如下错误
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\it\user_login.php on line 19初步判断是SQL语句的问题:  $sql="select * from $table where uname='".$username."'";但没看出来有什么异样。请大家多多指点。60分送上。

解决方案 »

  1.   

    // 使用数据库it用户名验证
      echo "$username<br>";
      $sql="select * from $table where uname='".$username."'";
      echo "$sql<br>";
      $result=mysql_query($sql);
      print_r($result);
      // 获取查询结果
      $num=mysql_num_rows($result);
      echo "$row<br>";//测试是否能查到相应的名称
      
      看看是不是有问题的!!!
      

  2.   

    在$result=mysql_query($sql);后加入echo mysql_error()进一步debug一下看看
      

  3.   

    问题已经分析清楚,并不是SQL语句的问题。而是mysql_query的时候没有设置编码,设置之后一切正常。二位都给分。