我有一个注册表单,其中我有一个字段登录名。我想为每个用户提供唯一的登录名,所以每当用户点击我想检查数据库的按钮时。如果用户输入的登录名已经存在,我想显示一个警告框,要求他尝试另一个登录名。我写了下面的代码。
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
}
}
这里的问题是每当它向我显示已经存在的名称的警报时。它永远不会进入其他部分。 请帮帮我这个
答案 0 :(得分:5)
即使没有返回任何行,mysql_query($ query)返回的$ result也将存在。只有在查询无效或包含错误且无法执行时才会失败。
尝试使用以下内容:
if( mysql_num_rows($result) > 0 )
mysql_num_rows将返回查询返回的行数。
友情提醒:不要忘记清理用户输入以防止SQL注入。
答案 1 :(得分:0)
首先获取数据然后计算$ rows数组 检查count是否大于0然后显示错误消息“用户名已存在”
如果条件和其他内容写入插入数据
享受:)
答案 2 :(得分: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
}
}
答案 3 :(得分:0)
检查if($ result ['LoginName]){ }