Intereting Posts
Обновлен до последней версии – 3.0.3 и теперь я получаю сообщение «достаточные разрешения для доступа к этой странице» Как ссылаться на теги / теги продукта / архивные страницы в редакторе wysiwyg? как ограничить фильтр posts_request только основным запросом Моя страница настройки возвращает «страница не найдена», Лицензирование плагина freemium Как вы добавляете пользовательские таксономические возможности? Использование переменных общедоступного запроса WordPress Страница «Параметры темы» с вкладками Могу ли я использовать wpdb для вставки результатов запроса в сообщение? Два разных домена для двух разных языков Как установить конкретный шаблон для подкатегорий? Может ли WordPress использоваться / расширяться как сайт электронной коммерции среднего размера? www.website.com работает, но веб-сайт перенаправляет на website.com/index.html is_user_logged_in () не работает в Firefox Исключить страницы в архивах

как комбинировать условия AND, OR и NOT, где

Я работаю с темой citytours в wordpress. Когда я выбираю дату для поиска туров, я хочу показать туры с датами начала после выбранной даты. У меня есть два тура с этими датами.

Tour1: 6-1-2017 Tour2: 9-1-2017 

Например, я выбираю дату 5-1-2017, тогда оба тура должны быть перечислены. Если я выбираю 7-1-2017, тогда должен быть указан только тур2. Если я выберу 6-1-2017, тогда оба они должны быть перечислены. В настоящее время я делаю это с помощью этого кода. Но у меня есть проблема где-то. Когда я выбираю 10-1-2017 или любую другую дату, после которой не запускается тур, отображаются все предыдущие туры. Я не хочу этого.

  $sql .= " WHERE ((( meta_c2.meta_value=1 ) AND ( IFNULL(meta_c4.meta_value, '00-00-0000') > '{$date}' ) OR ( IFNULL(meta_c4.meta_value, '00-00-0000') = '{$date}' ) AND ( IFNULL(meta_c5.meta_value, '9999-12-31') > '{$date}' ) AND ( IFNULL(meta_c6.meta_value, '{$day_of_week}') = '{$day_of_week}' )) OR ( meta_c2.meta_value=0 AND meta_c3.meta_value='{$date}' )) AND ((meta_c1.meta_value IS NULL) OR (meta_c1.meta_value='') OR (meta_c1.meta_value-IFNULL(booking_info.adults, 0) > {$adults}) )"; 

Я попробовал это таким образом.

  $sql .= " WHERE ((( meta_c2.meta_value=1 ) AND ( IFNULL(meta_c4.meta_value, '00-00-0000') > '{$date}' ) OR ( IFNULL(meta_c4.meta_value, '00-00-0000') = '{$date}' ) NOT ( IFNULL(meta_c4.meta_value, '00-00-0000') < '{$date}' ) AND ( IFNULL(meta_c5.meta_value, '9999-12-31') > '{$date}' ) AND ( IFNULL(meta_c6.meta_value, '{$day_of_week}') = '{$day_of_week}' )) OR ( meta_c2.meta_value=0 AND meta_c3.meta_value='{$date}' )) AND ((meta_c1.meta_value IS NULL) OR (meta_c1.meta_value='') OR (meta_c1.meta_value-IFNULL(booking_info.adults, 0) > {$adults}) )"; 

Я применил это, поэтому он не должен получать туры, где дата начала – это <выбранная дата.

  NOT ( IFNULL(meta_c4.meta_value, '00-00-0000') < '{$date}' ) 

Но в результате я не получаю никакого события, даже если я выбираю 5 или 6 или любую другую дату. Я также пробовал с состоянием НЕ наконец, но никаких результатов.

Предложить что-то …..