<?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. Как я могу заставить его работать?
Ваш запрос неправильный, вы просто выбираете всех существующих пользователей. Вы должны выбрать, где имя пользователя, пароль и адрес электронной почты совпадают с вводом и проверить количество строк 1 или 0.
Других решений пока нет …