2014-02-07 5 views
2

У меня есть форма, в которой есть три текстовых поля, и пользователь вводит электронную почту в любом или всех из них, мне нужно проверить, присутствует ли это письмо в db или нет. Проблема заключается в том, что может быть пользователь заполняет только 1 поле, может быть я получаю более одного результат из БДА, запрос я писал в РНРпоиск по нескольким значениям в php

$sql = "SELECT * FROM user_email WHERE (emailAddr = '{$d1]}' OR emailAddr = '{$d2}' OR emailAddr = '{$d3}') AND email!='' LIMIT 1"; 

Думая о различных вариантах использования, в которых может быть есть пустое поле, ничего не написано, я прав?

+1

LIMIT 1 будет убедиться, что вы получите максимум 1 строки –

ответ

3

я игнорирую, как именно вы используете синтаксис со скобками, но это может быть что-то вроде этого:

SELECT 
    * 
FROM 
    user_email 
WHERE 
    email 
IN 
    ('$d1','$d2','$d3') 
LIMIT 
    1 

То есть, если есть электронная почта, которая составляет одну из этих трех, возвращение ряд.

+0

, что если пользователь не заполняет ничего и там пустая строка в таблице user_email, которые не должны быть возвращены –

+1

@ user1765876 затем проверить электронную почту с помощью 'FILTER_VALIDATE_EMAIL' перед выполнением запроса! –

+2

или добавить ", а электронная почта не является нулевой и электронной почтой! = ''" – netadictos

Смежные вопросы