скорее всего вы используете MySQL, тогда попробуйте что-то такое: SELECT count(*) FROM my_table where email="$email"
будем считать, что $email уже подвергался mysqli_real_escape Код (PHP): // запрос вернет либо одну строку когда есть такой емайл, либо ни одной строки если нет такого емайла. $result = mysqli_query($link, "SELECT 1 FROM my_table WHERE email='$email'"); if (mysqli_num_rows($result)) { // есть такое } вот это уточнение непонятно. запросы желательно выносить из цикла. допустим в цикле мы накопили все интересующие нас емайлы в массиве. тогда Код (PHP): if (count($emails)) { $strList = implode(', ', array_map(function($s) {return "'$s'";}, $emails)); // здесь уместно считать на стороне MySQL $result = mysqli_query($link, "SELECT COUNT(*) AS cnt FROM my_table WHERE email IN($strList)"); $row = mysqli_fetch_assoc($result); if ($row['cnt'] == count($emails)) { // все адреса уже есть } }
artoodetoo, с вашим вариантом что то ничего не получилось, выдает ошибку. AmsTaFFix ваш вариант работает. только вот помоему немного "тяжеловесный код" у меня получился... мне нужно этим кодом в базе обработать несколько тысяч строк $result_a = mysql_query("SELECT count(*) FROM users WHERE url = '$name'"); $result_a = mysql_fetch_array($result_a); $result_a = $result_a[0]; if($result_a > '1' ) { $name = $name.$myrow["id"]; }
Я всего лишь навел на мысль как можно сделать а в какой стороне искать ответ ) покажите цифры, по которым вы определяете, что у вас код "тяжеловесен", без них ничего сказать нельзя )