Если в Админ-центре у вас установлен "обычный" поиск (не полнотекстовый) и база данных вашего форума создана в регистрозависимом чарсете (определить какой у вас, см. файл в конце статьи), вы можете испытывать проблемы с поиском.
Причина:
При поиске в файле search_mysql_man.php в запросе текст поста приводится к нижнему регистру:
[color=#048284]$title_like[/color] = " LOWER(t.title) LIKE '%".trim([color=#048284]$keywords[/color])."%' ";[color=#048284]$post_like[/color] = " LOWER(p.post) LIKE '%".trim([color=#048284]$keywords[/color])."%' ";
Однако сама строка поиска остаётся в том регистре, в котором её задал пользователь. Т.е. например, если пользователь задал поиск "маша", то найдётся только "маша".
2-ой вариант: поменять чарсет БД на регистронезависимый.
Собственно, если Вы смените чарсет на регистронезависимый можно вообще убрать LOWER из запросов выше, т.к. они не сказываются на результат, а только замедляют поиск.
Song:
Сиптомы:
Если в Админ-центре у вас установлен "обычный" поиск (не полнотекстовый) и база данных вашего форума создана в регистрозависимом чарсете (определить какой у вас, см. файл в конце статьи), вы можете испытывать проблемы с поиском.
Причина:
При поиске в файле search_mysql_man.php в запросе текст поста приводится к нижнему регистру:
Однако сама строка поиска остаётся в том регистре, в котором её задал пользователь. Т.е. например, если пользователь задал поиск "маша", то найдётся только "маша".
Ни "Маша", ни "МАША" не найдутся.
Исправление:
1-ый вариант: добавить выделенный ниже код:
[b]function[/b] do_main_search(){ [b]global[/b] [color=#048284]$ibforums[/color], [color=#048284]$DB[/color], [color=#048284]$std[/color], [color=#048284]$HTTP_POST_VARS[/color], [color=#048284]$print[/color]; [color=#048284]$ibforums[/color]->input['keywords'] = strtolower([color=#048284]$ibforums[/color]->input['keywords']);[b]function[/b] do_main_search(){ [color=#048284]$this[/color]->ipsclass->input['keywords'] = strtolower([color=#048284]$this[/color]->ipsclass->input['keywords']);2-ой вариант: поменять чарсет БД на регистронезависимый.
Собственно, если Вы смените чарсет на регистронезависимый можно вообще убрать LOWER из запросов выше, т.к. они не сказываются на результат, а только замедляют поиск.
Примечания:
1) Если после исправления в 1-ом варианте глюк всё ещё присутствует, воспользуйтесь этой статьёй: Самопроизвольное изменение регистра букв
2) Определить какой у вас чарсет можно из следующего справочного руководства phpMyAdmin (html файл):
Song_Bot: К посту прикреплены вложения, но посмотреть Вы их можете, только открыв статью в Форуме.