Ошибка базы при входе в профили и в группы

InstantCMS 2.X
#1 13 декабря 2018 в 02:11
Как всегда неожиданно обнаружил ошибку. Входя в любой профиль или группу стал получать дну и ту же ошибку базы
  1. Ошибка в запросе БД:
  2. You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'desc LIMIT 0, 50' at line 8
  3.  
  4. SELECT i.*, COUNT(e.id) as `replies_count`, u.nickname as `user_nickname`, u.is_deleted as `user_is_deleted`, u.avatar as `user_avatar`, IF(online.date_created IS NOT NULL AND TIMESTAMPDIFF(SECOND, online.date_created, NOW()) <= 180, 1, 0) as `is_online`
  5. FROM gor_wall_entries i
  6. LEFT JOIN gor_wall_entries as e ON e.parent_id = i.id
  7. INNER JOIN gor_users as u ON u.id = i.user_id
  8. LEFT JOIN gor_sessions_online as online ON online.user_id = u.id
  9. WHERE (i.profile_id = '1') AND (i.parent_id = '0') AND (i.profile_type = 'user')
  10. GROUP BY i.id
  11. ORDER BY i. desc
  12. LIMIT 0, 50
  13. Последние вызовы:
  14.  
  15. cmsModel->get() @ /system/controllers/wall/model.php : 37
  16. modelWall->getEntries() @ /system/controllers/wall/frontend.php : 40
  17. wall->getWidget() @ /system/controllers/users/actions/profile.php : 64
  18. actionUsersProfile->run() @ /system/core/controller.php : 514
  19. cmsController->runExternalAction() @ /system/core/controller.php : 425
  20. cmsController->runAction() @ /system/core/core.php : 736
  21. cmsCore->runController() @ /index.php : 44
Еще две недели назад все работало и уже вторую неделю копаю проблему!
Кто сталкивался? Подскажите что это за ошибка и как ее исправить!
#2 13 декабря 2018 в 06:41

Еще две недели назад все работало

vikont
И как обычно за эти две недели, никто ничего с сайтом не делал )))
У вас в восьмой строке запроса
  1. ORDER BY i. desc
затесался пробел между i. и desc. Возможно, это ускорит поиск проблемы. Ищите " desc" ( desc с пробелом ), сузить поиск можно по файлам из списка ниже
  1. cmsModel->get() @ /system/controllers/wall/model.php : 37
  2. modelWall->getEntries() @ /system/controllers/wall/frontend.php : 40
  3. wall->getWidget() @ /system/controllers/users/actions/profile.php : 64
  4. actionUsersProfile->run() @ /system/core/controller.php : 514
  5. cmsController->runExternalAction() @ /system/core/controller.php : 425
  6. cmsController->runAction() @ /system/core/core.php : 736
  7. cmsCore->runController() @ /index.php : 44
Но скорее всего, проблема в этих трёх
  1. cmsModel->get() @ /system/controllers/wall/model.php : 37
  2. modelWall->getEntries() @ /system/controllers/wall/frontend.php : 40
  3. wall->getWidget() @ /system/controllers/users/actions/profile.php : 64
#3 13 декабря 2018 в 08:18

затесался пробел между i. и desc

Loadырь
Там не пробел затесался, там date_pub недотесался.
Вот как выглядит этот запрос у здорового человека:
  1. SELECT i.*, COUNT(e.id) AS `replies_count`, u.nickname AS `user_nickname`, u.is_deleted AS `user_is_deleted`, u.avatar AS `user_avatar`, IF(online.date_created IS NOT NULL AND TIMESTAMPDIFF(SECOND, online.date_created, NOW()) <= 180, 1, 0) AS `is_online`
  2. FROM cms_wall_entries i
  3. LEFT JOIN cms_wall_entries AS e ON e.parent_id = i.id
  4. INNER JOIN cms_users AS u ON u.id = i.user_id
  5. LEFT JOIN cms_sessions_online AS online ON online.user_id = u.id
  6. WHERE (i.profile_id = '25') AND (i.parent_id = '0') AND (i.profile_type = 'group')
  7. GROUP BY i.id
  8. ORDER BY i.date_pub DESC
  9. LIMIT 0, 15
#4 13 декабря 2018 в 08:20

Там не пробел затесался, там date_pub недотесался.

Ris
Точно, а я с утра только пробел увидел.
#5 13 декабря 2018 в 08:45
vikont,
Попробуйте в Панель управления — Компоненты — Стена выставить сортировку по дате публикации.
Может полегчает…
#6 13 декабря 2018 в 12:22

vikont,
Попробуйте в Панель управления — Компоненты — Стена выставить сортировку по дате публикации.
Может полегчает...

Ris
Так полегчало, что хоть скорую вызывай… В контроллере пункт Стена не активный! В таблице cms_controllers на стене отсутствовали опции — поправил!
Как теперь поправить ссылку? Не найду где она прописывается.

И как обычно за эти две недели, никто ничего с сайтом не делал )))

Loadырь
А вы как догадались? Дедукция? laugh
Базу уж точно не коцал и не правил… А вот завал сервера пытались устроить…
#7 13 декабря 2018 в 12:48

Как теперь поправить ссылку?

vikont
Какую ссылку?
#8 13 декабря 2018 в 13:31

Какую ссылку?

Ris
В контроллере компонент Стена не активный, а не могу войти в настройки. Как сделать, чтобы слово Стена стало кликабельным.
#9 13 декабря 2018 в 13:52

В контроллере компонент Стена не активный, а не могу войти в настройки. Как сделать, чтобы слово Стена стало кликабельным.

vikont
у вас какие-то волшебные проблемы с базой данных. Про восстановление бэкапа не думали? — таких косяков же может быть много, замучаетесь исправлять.

Откройте базу данных, и там для компонента Wall поставьте "1" в поле is_backend — это и делает ссылку активной.
#10 13 декабря 2018 в 14:16

у вас какие-то волшебные проблемы с базой данных. Про восстановление бэкапа не думали? — таких косяков же может быть много, замучаетесь исправлять.

@SmartControl
Когда не доходит через мозги, наступает через физических "упражнений" — так и у меня… shock
А все началось, если помните с вашего виджета, он не захотел нормально работать… вот с тех пор и восстанавливаю код, базу...
Бекапов валом, но когда не знаешь точно что и когда произошло, трудно на них опираться, проще все восстановить с нуля....

Всем спасибо! Удалось восстановить путем восстановления таблицы Стены и обновлением скрипта компонентов Стены, Группы и Юзеров — все в куче дало результат!
#11 13 декабря 2018 в 14:29

А все началось, если помните с вашего виджета, он не захотел нормально работать… вот с тех пор и восстанавливаю код, базу...

vikont

Если вы из-за стороннего виджета разнесли в щепки свою базу данных, то я тут точно ни при чем)
#12 13 декабря 2018 в 14:56

Если вы из-за стороннего виджета разнесли в щепки свою базу данных, то я тут точно ни при чем)

@SmartControl
А я вас и не виню. Просто именно тогда, я понял, что то не так работает на сайте и начал поиски проблемы у себя, и они были…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.