Доброго времени суток. Появилась задача вводить через браузер emаil в базу и проверять ее на дубликат. Так как опыт с php оставляет желать лучше, был написан скромный кодик такого вида PHP: <?php $host = "192.***.***.***"; $user = "***"; $password = "***"; $db = "****"; if (!$conn = mysql_connect($host, $user, $password)) { echo "<h2>MySQL Error!</h2>"; exit; } $email = $_POST['email']; $manager = $_POST['manager']; $data= $_POST['data']; mysql_select_db($db); $result = mysql_query("SELECT email FROM Clients WHERE email='$email'"); $myrow = mysql_fetch_array($result); if (!empty($myrow['id'])) { exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."); } header("Location: index.php"); ?> Проблема в том, что код либо добавляет в базу наши значения без проверки, либо пропускает шаг проверки и просто добавляет такую же запись. В какую сторону копать, чтобы исправить эту проблему?? Как вообще правильно поставить условия, чтобы они выполнялись последовательно и не пропускались.
PHP: $check="SELECT email FROM Clients WHERE email = $email"; $rs = mysqli_query($con, $check); $data = mysqli_fetch_array($check, $rs, MYSQLI_NUM); if(!empty($data['email'])) { echo "User Already in Exists<br/>"; } Сделал чек, как вы сказали, но все равно внесение данных проходит сквозь него. Я правильно написал то, что вы имели ввиду?
нет не правильная логика, как меня раньше поправляли, теперь моя очередь место !empty($data['email']) мы проверяем на кол-во возвращаемых строк с бд rowCount --- Добавлено --- https://github.com/MouseZver/Mouse_Project/blob/master/inc/Page/register/init.php --- Добавлено --- на архитектуру класса не обращаем внимание, а всего лишь смотрим реализацию хода проверки во функции public static function RegisterAccount() --- Добавлено --- 65 строка тоже интересна