Сложный запрос к БД
Добрый день подскажите как реализовать - в модуль передаются куча данных, и в зависимости от них выполняется вот такой код:
$query = db_select('add_web','n');
$query->fields('n', array('w_id'));
if($_GET['field_w_cena1_value_min'])
$query->condition('n.w_cena1', $_GET['field_w_cena1_value_min'], '>=');
-------- и так далее ---------
вот вопрос как в $query-> запилить сравнение по двум полям? Вообще допустим при наличие определенной переменной необходимо сравнить поля одной записи на равенство и не выбирать те записи, у которых значение полей одинаковы
Пытался писать что-то вроде if($_GET['nolast']) $query->condition('n.w_et1', 'n.w_et2', '!='); но увы не работает (((
Подскажите пожалуйста как выполнить. Необходимо именно таким способом (((
-------------------------------------
В конце естественно:
$ids = $query->execute()->fetchCol();
Во-первых используйте функцию check_plain() для того чтобы обрабатывать переменные $_GET, во-вторых подставляйте условия в запрос как заполнители:
https://drupalbook.org/ru/drupal/rabota-s-bd-v-drupal-7-urok-12-usloviya-zaprosov-where-having
Если вы реализуете поиск, то возможно лучше будет его делать через Facet API.
http://drupal.org/project/facetapi