Мне нужно проверить, если пользователь вводит то же имя пользователя или пароль в БД, код должен сказать им. Он уже существует. Но он не работает здесь

<?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. Как я могу заставить его работать?

0

Решение

Ваш запрос неправильный, вы просто выбираете всех существующих пользователей. Вы должны выбрать, где имя пользователя, пароль и адрес электронной почты совпадают с вводом и проверить количество строк 1 или 0.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]