Я не знаю, что случилось с этим кодом SQL

Я новичок в PHP и Mysql, по какой-то причине он проверяет только оператор if ($ email == $ result2), который вводит имя пользователя или адрес электронной почты. Я не знаю почему? может кто-то объяснить это логически, я застрял часами, выясняя это. :( Спасибо Пожалуйста, будьте добры.

<p> }</p>
6 ответов

Он ведет себя так, как написано. Если тест if() завершился успешно, вы скажете сценарию exit().

Удалите вызовы exit()...

Также вам действительно нужно узнать о WHERE в запросах. Вы сосать всю таблицу пользователей и сравнивать записи по одному. Это эквивалент езды в продуктовый магазин, скупка инвентаря ENTIRE store, вождение его домой... затем выброс всего этого в мусор, потому что все, что вам действительно нужно, было одним конфетным баром.


Ребята, я догадался, ответ от объединения некоторых ваших комментариев. по какой-то причине мне нужно включить isset ($ _ POST ['username']) вместе с isset ($ _ POST ['email']), чтобы мои if-выражения были выполнены... возможно, это была проверка isset, если это значение для имени пользователя.


измените эту строку на следующую строку:

$extract= mysql_query("SELECT username, email FROM users");

Затем используйте предложение where следующим образом:

$extract= mysql_query("SELECT username, email FROM users where username='$username' and email='$email'");


Переходит ли он во второй оператор if (if ($ username == $ result)) после того, как вы закомментируете первый (if ($ username = $ result))?

Если это так, то он продолжает бить эту функцию exit().


попробуй это

if($email == $result2 ) 
{ //check if there is already an entry for that username
 echo "Email Address is already used!";
 //---------removed that line
}
else if ($username == $result ) //add else if instead of if
{
 echo " Username is already Taken!";
 //mysql_query("INSERT INTO users (Username, Password) VALUES ('$user', '$pass')");
 //header("location:index.php");
 //----------removed that line
}
else
{

}

РЕДАКТИРОВАТЬ:

изменить это

if(isset($_POST['email']) )

в

if(isset($_POST['email']) or isset($_POST['username']))

это проверить их обоих. вы проверяете только электронную почту, и почему вы не получаете второй, если.


Я думаю, что вам лучше использовать уникальный в своем столбце адрес электронной почты и имя пользователя, тогда вам больше не нужно его проверять, mysql сделает это за вас!

licensed under cc by-sa 3.0 with attribution.