Проверка на существование

Рейтинг: 0Ответов: 3Опубликовано: 16.09.2014

Здравствуйте. Сделал проверку пользователей на существование в регистрации, вот такой скрипт

$search = mysql_query("SELECT * FROM users WHERE mobPhone='.$mobPhone.' AND email='.$email.'");
$seachf = mysql_fetch_array($search);
if (empty($seachf)) {

}

А проблема в том, что он не обрабатывает условие, то есть если такой пользователь есть, то он все равно его регистрирует.

Ответы

▲ 2Принят

Лучше проверять количество, чем вытаскивать саму запись:

$search = mysql_query("SELECT COUNT(*) cnt FROM users WHERE mobPhone='" . $mobPhone . "' AND email='" . $email . "'");
$seachf = mysql_fetch_array($search);

if($seachf['cnt'] == 0){
  echo 'такого пользователя нет';
}
▲ 1

У Вас запрос к БД кривой. Заострите внимание на изучении конкатенации строк в php и их обработку.
Например, телефон 71234567890 и мыло a@b.c , тогда в MySQL уйдет такой запрос:

SELECT * FROM users WHERE mobPhone='.71234567890 .' AND email='.a@b.c.'

Естественно, что всегда нет выборки для такого запроса.

▲ 1

Попробуйте так

$search = mysql_query("SELECT * FROM users WHERE mobPhone='".$mobPhone."' AND email='".$email."'");
$prov=0;
$prov=mysql_num_rows($search);
if ($prov>0)
 {
   // код если в запрос что-то нашел
 }
else
 {
  // код если запрос ничего не нашел
 }

Описание команды http://php.net/manual/ru/function.mysql-num-rows.php