Поскольку будет около 6 текстовых полей, мне было интересно, есть ли лучший способ сортировки вместо использования операторов if для проверки каждой переменной
Определенно НЕТ.
Во-первых, нет ничего плохого в использовании нескольких if в порядке.
Поверьте мне, я сам большой поклонник сокращения повторений кода, но считаю, что эти блоки, написанные вручную, являются лучшим решением.
Далее, хотя может быть способ обернуть эти условия в некоторый цикл, в большинстве случаев разные состояния требуют различного лечения.
однако, в ваших следующих утверждениях вы ошибаетесь:
и написание конкретных запросов
вам нужен только один запрос
Похоже, было бы много операторов if.
почему? не более, чем количество полей у вас есть.
Здесь приведен полный пример кода создания пользовательского поискового запроса:
$w = array();
$where = '';
if (!empty($_GET['rooms'])) $w[]="rooms='".mesc($_GET['rooms'])."'";
if (!empty($_GET['space'])) $w[]="space='".mesc($_GET['space'])."'";
if (!empty($_GET['max_price'])) $w[]="price < '".mesc($_GET['max_price'])."'";
if (count($w)) $where="WHERE ".implode(' AND ',$w);
$query="select * from table $where";
единственные поля, заполненные пользователем, идущие на запрос.
порядок будет примерно таким же.
- mesc - это аббревиатура для mysql_real_escape_string или любой другой применимой для базы данных функции экранирования строк