0

我有一个注册表单,其中有一个字段登录名。我希望每个用户都有唯一的登录名,所以每当用户单击一个按钮时,我都想检查数据库。如果用户输入的登录名已经存在,我想显示一个警告框,要求他尝试另一个登录名。我写了以下代码。

if($login != '')
{
$query = "Select LoginName from register where LoginName='".$login."'";
$result = mysql_query($query);
if($result)
{
?>
<script type="text/javascript">
alert("Login name exist");
</script>
<?php
}
else
{
insert into database
}
}

这里的问题是每次它向我显示名称已经存在的警报。它永远不会进入 else 部分。请帮我解决这个问题

4

4 回答 4

5

即使没有返回任何行,mysql_query($query) 返回的 $result 也将存在。仅当查询无效或包含错误且无法执行时才会失败。

尝试使用以下内容:

if( mysql_num_rows($result) > 0 )

mysql_num_rows 将返回查询返回的行数。

友情提示:不要忘记清理您的用户输入以防止 SQL 注入。

于 2012-05-24T05:06:46.680 回答
0

首先,当您获取数据然后计数 $rows 数组检查计数是否大于 0 然后您显示错误消息“用户名已存在”

所以把 if 条件和 else 写入插入数据

享受 :)

于 2012-05-24T05:15:18.533 回答
0

你的流程应该是这样的:

<?php
if($login != ''){
  $query = "Select LoginName from register where LoginName='".$login."'";
  $result = mysql_query($query);
  if($result){
    if(mysql_num_rows($result) > 0) {
?>
        <!-- LoginName already exists, do something here -->
        <script type="text/javascript">
          alert("Login name exist");
        </script>
<?php
   }
   else {
     // LoginName avaialable
     // your logic for registering user goes here
   }
 }
 else
 {
   // query not executed, handle this issue properly
 }
}
于 2012-05-24T05:21:57.920 回答
0

检查 if($result['LoginName]){ }

于 2012-05-24T05:29:30.957 回答