Есть такой кусочек кода чтобы лишний раз не дергать базу данных через OR . Как разбить на две проверки, сли существует пользователь с таким email выводило что "$_POST['email'] занят" , а если с username то "имя пользователя $_POST['username'] занято"? PHP: $zz = filter_var($_POST['zz'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; $u = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `id` FROM `".PREFIX."_users` WHERE `".$zz."` = '".esc($_POST['zz'])."' LIMIT 1"));
Напиши SQL запрос с условием OR. Если он вернет непустой результат, выведи "email или имя пользователя уже заняты". Всё! Я не понял что такое $_POST['zz'] и почему плохо "дёргать базу через OR". Черезжопство какое-то в которое не хочется вникать. Пользователь вводит в форму несколько полей в т.ч. и почту, и имя пользователя, так? Вот и используй оба значения в одном запросе через ИЛИ. --- Добавлено --- P.S. Тебе даже не надо получать сами существующие данные. Можно понять есть они или нет через функцию mysqli_num_rows
никак, пользуну не нужно знать занято мыло или нет, занят логин или нет, нужно отлуп давать, что введены неправильные данные, какие, никого не должно волновать ты ему ещё разбей, какую букву он неправильно ввёл, так может он тогда быстрее нащупает правильную
Вообще какбы принято намекать, что акк уже есть, а не просто "ошибка и пошел в жопу". Github: "Email is invalid or already taken" Facebook: "Do you already have a Facebook account?" Mail.ru: "Ящик с таким именем уже существует" В случае топикстартера можно наверное написать "Аккаунт с таким логином или адресом уже существует" без уточнения. Делай как проще и да прибудет с тобой сила! --- Добавлено --- P.S. раздел "Сделайте за меня" не гарантирует, что за тебя сделают. Скорее тебя закидают какашками за лень.