到底报什么错,把出错信息放上来看一看。
用下边的语句看一看
$query="select username from admin where username='$username'";

解决方案 »

  1.   

    <head>
    <?
    require("conn.inc");
    ?>
    <script language="JavaScript">
    <!--
    function MM_popupMsg(msg) { //v1.0
      alert(msg);
    }
    //-->
    </script>
    </head>
    <body>
    <?
    if($username=="") 

    $chkinfo="对不起,请输入用户名"; 

    else {
    $query="select username from admin where username=$username";
    $result=mysql_query($query);
    while($row="mysql_fetch_array($result)")
    {
    if ($row[username]==$username)
    $chkinfo="该用户名已经被注册";
    break;
    }
    }
    ?><input type="button" name="chk" value="检测用户名" onClick="MM_popupMsg('<? echo "$chkinfo";?>')">
    </body>
      

  2.   

    报错到没有。可不无论你往username的文本框你输入什么 ,都提示说“该用户名已经被注册 ”
    还有个问题就是:想在这样的判断中({  
                                                   if  ($row[username]==$username)  
                                                   $chkinfo=  "该用户名已经被注册  ";  
                                                   break;  
                                       }  )是不是就不用else语句了啊??
      

  3.   

    报错到没有。可不无论你往username的文本框你输入什么 ,都提示说“该用户名已经被注册 ”
      

  4.   

    while($row="mysql_fetch_array($result)"){
    if ($row[username]==$username)
    $chkinfo="该用户名已经被注册";
    break;
    }
    有错!
    $row="mysql_fetch_array($result)"是把字串"mysql_fetch_array($result)"赋给$row,应该不加引号。
    while($row=mysql_fetch_array($result))$row[username]
    ==>
    $row['username']
    这样写较规范。
      

  5.   

    $query="select username from admin where username='$username'";
      

  6.   

    改为:
    while($row=mysql_fetch_object($result))
    {
    if($row->username==$username)
    $chkinfo = "该用户名已经被注册";
    break;
    }
      

  7.   

    我们一般是这样判断。你试试看!我们都是这么用
    <head>
    <?
    require("conn.inc");
    ?>
    <script language="JavaScript">
    <!--
    function MM_popupMsg(msg) { //v1.0
      alert(msg);
    }
    //-->
    </script>
    </head>
    <body>
    <?
    if($username=="") 

    $chkinfo="对不起,请输入用户名"; 

    else
    $query="select username from admin where username='".$username."'"(最好是这么写);
    $result=mysql_query($query);
    if ($result)
                               {
    $chkinfo="该用户名已经被注册";
    }
    ?><input type="button" name="chk" value="检测用户名" onClick="MM_popupMsg('<? echo "$chkinfo";?>')">
    </body>
      

  8.   

    我把核心的地方改成下面这个了,可是还不行啊,不管用户名那填什么,点击检测按扭后的提示都是:对不起,请输入用户名!
    <?
    if($username=="") 

    $chkinfo="对不起,请输入用户名"; 

    else
    $query="select username from admin where username='".$username."'"(最好是这么写);
    $result=mysql_query($query);
    if ($result)
                               {
    $chkinfo="该用户名已经被注册";
    }
    ?>
    而当我去掉:
    if($username=="") 

    $chkinfo="对不起,请输入用户名"; 

    else只剩下:
    $query="select username from admin where username='".$username."'"(最好是这么写);
    $result=mysql_query($query);
    if ($result)
                               {
    $chkinfo="该用户名已经被注册";
    }
    的时候呢,不管填什么,都提示说:用户名已经被注册!
    真不知道是怎么回事!!!
      

  9.   

    还有4分钟,这个问题就捆饶我3天啦~~~同志们那,~~~~help~~~~~~~~~
      

  10.   

    你的else后面有{}吗?
    把你完整的代码帖出来看看。
      

  11.   

    看这样怎么样!
    <head>
    <?require("conn.inc");?>
    <script language="JavaScript">
    <!--
    function MM_popupMsg(msg) { //v1.0
      alert(msg);
    }
    //-->
    </script>
    </head>
    <body>
    <?
    if($username==""){ $chkinfo="对不起,请输入用户名";}
    else{
            $query="select username from admin where username='$username'";
            $result=mysql_query($query);
            while($row=mysql_fetch_array($result))
             {
                   if ($row[username]==$username){
                       $chkinfo="该用户名已经被注册";
                       break;
                   }else{
                       $chkinfo="该用户名没有被注册";
                       return;
                    }
             }
    }
    ?><input type="button" name="chk" value="检测用户名" onClick="MM_popupMsg('<? echo $chkinfo;?>')">
    </body>
      

  12.   

    echo一下sql语句,这样很有帮助。
      

  13.   

    根据你最后一个帖子
    我觉得是因为$username 一直是 "";
    这样if()总是返回true;
    你可以试着用$username = $_GET["username"] or $_POST["username];取决于你的form里面的method你去掉if以后,用result来判断是否用户存在是不可取的,因为即使$username == "", 但你的sql statement一直正确,if($result)也是总返回true, 即使结果为空。所以你会一直受到“用户已经注册“的结果。你可以用 if(mysql_num_rows($result)) 来判断.
      

  14.   

    根据你最后一个帖子
    我觉得是因为$username 一直是 "";
    这样if()总是返回true;
    你可以试着用$username = $_GET["username"] or $_POST["username];取决于你的form里面的method你去掉if以后,用result来判断是否用户存在是不可取的,因为即使$username == "", 但你的sql statement一直正确,if($result)也是总返回true, 即使结果为空。所以你会一直受到“用户已经注册“的结果。你可以用 if(mysql_num_rows($result)) 来判断.
      

  15.   

    把$row[username]改为$row["username"]。
      

  16.   

    他这段代码有一个逻辑错误。
    你们看:他首先查询到所有与填写名称相同的数据。然后在这个结果内查询是不是有相同的用户。 结果,只能是“该用户名已经被注册”。
    $query="select username from admin where username=$username";
    $result=mysql_query($query);
    while($row="mysql_fetch_array($result)")
        {
             if ($row[username]==$username)
    $chkinfo="该用户名已经被注册";
             break;
    }
    不知是不是这样。