<?php
$errors=array();
session_start();
if(!isset($_POST['name']) || empty($_POST['name'])){
$errors[]="enter name";
}
elseif(!isset($_POST['email']) || empty($_POST['email'])){
$errors[]="enter mail id";
}
elseif(!isset($_POST['password']) || empty($_POST['password'])){
$errors[]="enter password";
}
else{
$name=$_POST['name'];
$email=$_POST['email'];
$password=$_POST['password'];
$con=mysql_connect('localhost','root','') or die("failed establishing connection");
$db=mysql_select_db("sam",$con) or die("failed establishing db connection");
$query="SELECT * FROM user_account";
$result=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($result) or die('errors');
if($row[1]==$name){
echo"username already exists";
}
elseif($row[3]==$email){
echo "Email already exists";
}
else
{
$sql=" INSERT INTO user_account ('username','password','email') VALUES('$name','$password','$email') " or die(mysql_error());
$result=mysql_query($sql) or die(mysql_error());
if($result)
{
echo "insertion done";
}
else
{
echo "insertion failed";
}
}
}
if(count($errors)>0){
foreach($errors as $err){
echo $err;
}
}
?>
我需要检查用户输入的用户名是否已存在于数据库中。为此,我添加了 if 循环来检查它。但是每次用户输入相同的用户名时,它都会显示错误消息,但是用户更正错误后,错误消息仍然存在。它没有移动到下一个 elseif 循环。我可以让它工作吗?
最佳答案
您的查询错误,您只是选择了所有存在的用户。您应该选择用户名、密码和电子邮件等于输入的位置,并检查 num 行 1 或 0。
关于php - 我需要检查,如果用户在数据库中输入相同的用户名或密码,代码需要告诉他们。它已经存在。但它在这里不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525544/