Итак, у меня есть инструкция if в PHP, чтобы проверить, используется ли имя пользователя/письмо в таблице SQL, но когда я его тестирую, он продолжает говорить, что имя пользователя/адрес электронной почты уже используется, даже если его , Поэтому я предполагаю, что я сделал оператор if или извлечение данных неправильно, но я не могу узнать, что я сделал неправильно. Кроме того, когда я проверяю, являются ли поля пустыми, даже если они продолжаются, не прося заполнить все поля. Поэтому я был бы признателен, если кто-нибудь скажет мне, что не так в этих строках кода. Благодарю.Неправильные SQL-данные?
$sql="SELECT username, email FROM table_name";
$result=mysqli_query($con,$sql);
if($result === FALSE){
}else{
$row=mysqli_fetch_array($result);
}
if (empty($_POST['firstname']) || empty($_POST['lastname']) || empty($_POST['username']) || empty($_POST['email']) || empty($_POST['password']) || empty($_POST['password2'])) {
if(!($_POST['username'] == $row['username']) && ($_POST['email'] == $row['email'])) {
} else {
echo '<script type="text/javascript">'
, 'window.alert("That username or email is already in use.")'
, '</script>';
}
} else {
echo '<script type="text/javascript">'
, 'window.alert("Please fill in all the fields.")'
, '</script>';
}
попытка вторя результаты запроса и $ _POST массив на экран:. Эхо $ _POST [ «имя пользователя»] и эхо $ row ['username'] для визуального сравнения. –
Вы выбираете все строки в запросе, но получаете только первую строку. Вы должны добавить предложение WHERE и передать имя пользователя и адрес электронной почты, чтобы позволить движку MySQL выполнить поиск Сфокусируйтесь на том, чтобы сначала работать с валидацией, когда вы полностью протестировали это и заработали, перейдите к проверке проверки базы данных. Не пытайтесь решить сразу несколько проблем, разбейте его. – MrCode
еще одно - ваш главный, если заявление введет вас только в том случае, если одно из полей в форме пуст. –