logo

Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Сложный запрос к БД

22/02/2025, by Гость (не проверено)

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

 

$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