Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Запретить вывод новостей определенной категории при поиске

Запретить вывод новостей определенной категории при поиске


     11.11.2012    Общие вопросы по PHP    2983

вопрос
Вечер добрый!
Хочу запретить вывод новостей из ненужных категорий в поиске.
Я делал так:
в search.php (modules) вместо:
$where_posts = "WHERE " . PREFIX . "_post.approve=1" . $this_date;

написал
$where_posts = "WHERE " . PREFIX . "_post.approve=1 AND categoryXX" . $this_date;

где XX - это номер категории, но мне нужно несколько категорий написать.
Вопрос: как запретить вывод новостей ненужных категорий?
Спасибо!

Ответил: ПафНутиЙ


Нужно вот так:
$where_posts = "WHERE " . PREFIX . "_post.approve=1 AND NOT category regexp "[[:<:]](1|2|3)[[:>:]]" . $this_date;

тогда в поиске не будет категорий 1,2 и 3

Комментарии пользователей (5)

Slavchik
114 | 67

Slavchik - 15 ноября 2012 07:09 - Юзер

ПафНутиЙ, твойпример выдает ошибку:
Parse error: syntax error, unexpected '[' in /home/slavchik/domains/site.ru/public_html/engine/modules/search.php on line 570 

Slavchik
114 | 67

Slavchik - 16 ноября 2012 07:02 - Юзер

кавычки нужно одинарные ставить
'[[:<:]](1|2|3)[[:>:]]'

MAPKOBKA
4

80 | 18

MAPKOBKA - 13 июля 2013 19:08 - Юзер

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Не работает ни с двойными ни с одинарными кавычками. DLE 10

Gopr
10

494 | 164

Gopr - 24 сентября 2013 16:28 - Юзер

$where_posts = "WHERE " . PREFIX . "_post.approve=1 AND NOT category regexp '[[:<:]](8|11)[[:>:]]'" . $this_date;
Работает, после
'[[:<:]](8|11)[[:>:]]'
нужно еще одну двойную кавычку
"

swart
3

15 | 5

swart - 6 сентября 2013 15:36 - Юзер

можно написать так $where_posts = "WHERE " . PREFIX . "_post.approve=1 AND category NOT LIKE 1 AND category NOT LIKE 2 " . $this_date; и так далее...

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы