Новый параметр в поиске

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Новый параметр в поиске

Сообщение vegaweb »

Привет. Я добавил голосование по темам, теперь хочу сделать в поиске пункт "рейтинг не ниже чем.." и выпадающий список. Нужно делать обычную выборку + выборка из таблицы phpbb_topics_evaluation для каждой темы, и фильтровать, кто нибудь может подсказать как это реализовать? исследовал search.php - не могу там найти куда можно добавить еще один запрос, ну или хотя бы дополнительное условие в запросе.
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

Ок, тогда, пожалуйста, хотя бы подскажите кусок кода, который делает выборку из таблицы топиков в файле search.php, я сам допилю остальное.
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Новый параметр в поиске

Сообщение Sheer »

Начни с места if ($sql_where), только учти, что задача не совсем тривиальная, поскольку поиск надо осуществлять из двух таблиц.
http://mysql.ru/docs/man/JOIN.html
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

а конкретнее? нужен запрос выбирающий именно топики, я понимаю что там join. Я не пойму где именно этот запрос..
p.s. нужен вариант для вывода результатов списком только тем. у меня есть подозрения, где он, но не более чем )
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Новый параметр в поиске

Сообщение Sheer »

Конкретнее нужно дополнить запрос

Код: Выделить всё

            $sql_from = TOPICS_TABLE . ' t
                LEFT JOIN ' . FORUMS_TABLE . ' f ON (f.forum_id = t.forum_id)
                ' . (($sort_key == 'a') ? ' LEFT JOIN ' . USERS_TABLE . ' u ON (u.user_id = t.topic_poster) ' : ''); 
Если еще конкретнее, то это будет написание необходимого куска кода за тебя.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Simple
phpBB 2.0.0
Сообщения: 214
Стаж: 15 лет 5 месяцев
Откуда: Крым, Бахчисарай
Благодарил (а): 67 раз
Поблагодарили: 16 раз

Re: Новый параметр в поиске

Сообщение Simple »

vegaweb
Если у вас получится затеянное, может в виде мода оформили бы? :arrow:
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

Да, не вопрос, попробую..

Добавлено спустя 1 минуту 7 секунд:
Sheer за меня не надо ничего писать, сам немного умею ) спасибо за помощь, буду пробовать.

Добавлено спустя 49 минут 15 секунд:
ребята, вы не обидитесь если я не ввиде мода, а так расскажу?:)
итак, открываем search.php
НАЙТИ

Код: Выделить всё

$sql_where .= ($show_results == 'posts') ? $m_approve_fid_sql : str_replace(array('p.post_approved', 'p.forum_id'), array('t.topic_approved', 't.forum_id'), $m_approve_fid_sql);
ДОБАВИТЬ ПОСЛЕ

Код: Выделить всё

$sql_where .= (!empty($_GET['ball'])) ? ' AND e.evaluation>='.request_var('ball','').' ' : '';
открываем styles/prosilver/template/search_body.html
НАЙТИ

Код: Выделить всё

<dl>
		<dt><label>{L_RETURN_FIRST}:</label></dt>
		<dd><select name="ch" title="{L_RETURN_FIRST}">{S_CHARACTER_OPTIONS}</select> {L_POST_CHARACTERS}</dd>
	</dl>
ДОБАВИТЬ ПОСЛЕ

Код: Выделить всё

   <dl>
		<dt><label>Средний бал не ниже:</label></dt>
		<dd><select name="ball" title="ball">
        <option value="">выберите</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        </select></dd>
	</dl>
У меня десятибальная система, потому пунктов 10, а там под себя подстроите.
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

Народ, еще такой вопрос. Я сделал выборку по дополнительному search_id, при этом выводится то, что надо (темы с рейтингом не менее 9), но при формировании постраничной навигации он почему-то не учитывает, что количество уже другое, т.е. из него исключены темы с рейтингом ниже 9, и показывает мне постраничную навигацию, 1 и 2, при переходе на вторую страницу мы ничего не видим, так как больше ничего нету..

ссылка http://zogm.ru/search.php?search_id=topbooks

Добавлено спустя 1 час 3 минуты 32 секунды:
аналогично когда юзаешь расширенный поиск :(
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

сделал YAHOO!
Перелопатил несколько тысяч строчек кода, так что повторить здесь врядли решусь ) уже точно и не помню деталей.
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
FEAR93
Former team member
Сообщения: 666
Стаж: 17 лет 11 месяцев
Откуда: Кривой Рог, Украина
Благодарил (а): 22 раза
Поблагодарили: 76 раз

Re: Новый параметр в поиске

Сообщение FEAR93 »

vegaweb писал(а):сделал YAHOO!
Звучит как хвастовство.
vegaweb писал(а):Перелопатил несколько тысяч строчек кода,
Звучит как отмазка.
А тем более http://www.phpbbguru.net/community/rules/#rule2.7
А где твоя Родина, сынок?! Сдал Горбачёв твою Родину американцам, чтобы тусоваться красиво.

Шаблон запроса.
Правила.
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

FEAR93 проблемы с самомнением?
FEAR93 писал(а): Звучит как отмазка.
http://zogm.ru/search.php?search_id=topbooks проверяйте кэп
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
FEAR93
Former team member
Сообщения: 666
Стаж: 17 лет 11 месяцев
Откуда: Кривой Рог, Украина
Благодарил (а): 22 раза
Поблагодарили: 76 раз

Re: Новый параметр в поиске

Сообщение FEAR93 »

vegaweb писал(а):проверяйте кэп
Что мне проверять? Что у Вас получилось? Так я и так верю.
vegaweb писал(а):Перелопатил несколько тысяч строчек кода,
Звучит как отмазка, чтобы не делится решением, что в свою очередь является нарушением правил.
vegaweb писал(а):проблемы с самомнение?
Да, а ещё раздвоение личность и глаз дёргается, представляете?
А где твоя Родина, сынок?! Сдал Горбачёв твою Родину американцам, чтобы тусоваться красиво.

Шаблон запроса.
Правила.
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

если вы обратили внимание, вверху я поделился решением основного вопроса, мне не жалко, а после целого дня ковыряния кода phpbb я плохо помню что и где добавлял. Если у вас сложилось иное впечатление - сугубо проблемы вашего восприятия мира.
Бесполезно стучать в дверь, которой для других не существует
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Новый параметр в поиске

Сообщение Sheer »

Проблема была в pagination, а точнее с переменной $u_search
И вот так делать:

Код: Выделить всё

$sql_where .= (!empty($_GET['ball'])) ? ' AND e.evaluation>='.request_var('ball','').' ' : ''; 
тоже неправильно. Вместо$_GET['ball'] нужно вводить переменную, и потом ее использовать:

Код: Выделить всё

$sort_ball        = request_var('ball', 0); 
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
vegaweb
phpBB 1.4.4
Сообщения: 150
Стаж: 18 лет 1 месяц
Откуда: Харьков
Благодарил (а): 4 раза
Поблагодарили: 2 раза

Re: Новый параметр в поиске

Сообщение vegaweb »

Sheer, но я модов не пишу, написал как знал. какие никакое, а решение.
Бесполезно стучать в дверь, которой для других не существует

Вернуться в «Поддержка phpBB 3.0.х»