Непонятки после переезда с версии 2.0.8 на 2.0.9

Автор Video-VV, 04 марта 2015, 04:37:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Video-VV

Обновил форум с 2.0.8 на 2.0.9. Вот отсюда (http://custom.simplemachines.org/upgrades/index.php?action=upgrade;file=smf_patch_1.1.20_2.0.9.zip;smf_version=2.0.8),
причем прошёлся в ручную по всем пунктам. Всё вроде на форуме работает, но пункт меню "Поиск" вылетает по ошибке:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY b.board_order' at line 5
Файл: /(бла-бла....)/forum/Sources/Search.php
Строка: 151

Примечание: Возможно, базе данных требуется обновление. Версия файлов форума SMF 2.0.9, тогда как версия используемой базы данных 2.0.8. Для устранения ошибки, пожалуйста, обновите форум.


Я так понял, что нужно ещё что-то поменять в базе MySQL или я чего-то ни того сделал?
Заранее благодарен за ответ.

GeorG

Пишет что синтаксическая ошибка. Что у вас там по адресу?
'ORDER BY b.board_order' at line 5
Файл: /(бла-бла....)/forum/Sources/Search.php


Только не одну строчку, а весь запрос в БД что там есть.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Video-VV

В том то и дело, что выдернуть чего он там формирует я ещё не знаю как.
Вот место где генерится ошибка в файле Search.php:
   
-------------------------------------------------------------------------------------------------------
       // Find all the boards this user is allowed to see.
   $request = $smcFunc['db_query']('order_by_board_order', '
      SELECT b.id_cat, c.name AS cat_name, b.id_board, b.name, b.child_level
      FROM {db_prefix}boards AS b
         LEFT JOIN {db_prefix}categories AS c ON (c.id_cat = b.id_cat)
      WHERE {query_see_board}
         AND redirect = {string:empty_string}',
      array(
         'empty_string' => '',
      )
   );
-----------[ line 151]--------------------------------------------------------------------------------------------

Может подскажите как узнать чего он там присваивает переменной $request ?

Video-VV

Вот "наковырял" SQL строку которая формируется из запроса описанного выше :

SELECT b.id_cat, c.name AS cat_name, b.id_board, b.name, b.child_level
FROM smf_boards AS b LEFT JOIN smf_categories AS c ON (c.id_cat = b.id_cat)
WHERE 1=1 AND redirect = ''
ORDER BY b.board_order ORDER BY b.board_order


Получается что "дублируется" ORDER BY b.board_order, но почему ? :( И где искать это место репликации...

Ах, да выдернул "запрос" из функции smf_db_error() файла Subs-Db-mysql.php

Video-VV

#4
Ну капец!!! Нашёл "косяк" :( в файле Subs-Db-mysql.php. Там "хитрая" строка-"костыль", наверное, типа

   // Special queries that need processing.
   $replacements = array(
      'alter_table_boards' => array(
         '~(.+)~' => '',
      ),
      'boardindex_fetch_boards' => array(
         '~(.)$~' => '$1 ORDER BY b.board_order',
      ),
      'messageindex_fetch_boards' => array(
         '~(.)$~' => '$1 ORDER BY b.board_order',
      ),
      'order_by_board_order' => array(
         '~(.)$~' => '$1 ORDER BY b.board_order',
      ),
   );


Так если там убрать " ORDER BY b.board_order" из переменной 'order_by_board_order', то всё сразу начинает работать.
Откуда у меня этот массив $replacements (в файле Subs-Db-mysql.php) я не знаю, может его, этот массив, УБРАТЬ вообще?
У вас есть такой массив в файле Subs-Db-mysql.php?

GeorG

Смотрите, патч вносит только одну строчку в код Search.php - http://custom.simplemachines.org/upgrades/index.php?action=upgrade;file=smf_patch_1.1.20_2.0.9.zip;smf_version=2.0.8#sources_search-php_2

Попробуйте поменять обратно, или смотрите, может там есть у вас ошибка.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru