Имеем форму с полями для поиска.
Приходит на сервер запрос - нужно по данным поиска отобрать записи (составить предложение WHERE).
Кто что умного может сказать ? :)
Я вижу вариантов два:
либо постоянная часть WHERE
WHERE
(:is_club = -1 OR usr.is_club = :is_club) AND
(:id = '' OR usr.id = :id ) AND
(:active = -1 OR usr.active = :active ) AND
(:email = '' OR usr.email LIKE :email ) AND
(:name = '' OR usr.title LIKE :name OR
usr.name LIKE :name OR usr.fam LIKE :name) AND
(:is_club <> -1 OR :id <> '' OR :active <> -1 OR
:email <> '' OR :name <> '')
Либо формировать по кускам.
Если уж собирать кусками, то можно и улучшить поиск:
для числовых данных ввести варианты "<10" "!=5" "3<<6"
и т.п.
Принимается как опыт реализации, так и мысли …