Ошибка SQL при обновлении DLE 9.5 > 9.6

sunca
На сайте с 05.12.2010
Offline
77
802

Всем привет! Подскажите пожалуйста,что нужно сделать чтобы не возникало подобных проблем? Переходил с 9.5 на 9.6. Теперь вижу на главной сообщения вида:

MySQL Error!

Error Number:

1054

------------------------

Восстановил бекап через дампер:

теперь вылетает это

-----------------------------

MySQL Error!

Error Number:

1052

The Error returned was:

Column 'rating' in order clause is ambiguous

Error Number:

1052

SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '2012-07-25 19:11:00' - INTERVAL 1 MONTH AND p.date < '2012-07-25 19:11:00' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10

Как исправить?

D
На сайте с 14.01.2007
Offline
153
#1

у вас скорей всего в "dle_post" и "dle_post_extra" есть поле "rating". Mysql не знает по какому из них сортировать.

Т.е. ван надо либо:

ORDER BY p.rating DESC

либо:

ORDER BY e.rating DESC

sunca
На сайте с 05.12.2010
Offline
77
#2

да есть такие поля. И как его заставить сортировать?

Куда вбить ORDER BY p.rating DESC ?

D
На сайте с 14.01.2007
Offline
153
#3

туда где:

SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '2012-07-25 19:11:00' - INTERVAL 1 MONTH AND p.date < '2012-07-25 19:11:00' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10

sunca
На сайте с 05.12.2010
Offline
77
#4

Что-то не выходит ничего совсем...

root
На сайте с 04.07.2006
Offline
196
#5

/engine/modules/topnews.php

раз откатились - залейте старый файл.

ну или 37 строчку замените на:

$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY e.rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );

====

А вообще скачайте 10 версию и обновитесь правильно (выставив нормальные права на configи).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий