IPB Top Site List - Ошибка MySQL запроса!

big boy
На сайте с 18.11.2006
Offline
332
1063

Ситуация такая.

Есть скрипт IPB Top Site List v1.1

Очень мощная штука, но разрабатывалась для MySQL до версии 4.

На версии MySQL 5 и выше глючит!

Админка работает нормально, когда сам сайт выдает такую ошибку:

Error: Error executing query

The software returned the following error:

Unknown column 's.id' in 'on clause'

Query Executed: SELECT s.*,COUNT(DISTINCT c.id) as comment_count, AVG(v.value) as rating,COUNT(DISTINCT v.id) as num_votes, 0 as already_voted FROM tsl_sites AS s, tsl_users AS u, tsl_emails AS e LEFT JOIN tsl_comments AS c ON c.site = s.id && c.admin_validate = 1 LEFT JOIN tsl_votes AS v ON v.active = 1 && v.site = s.id WHERE s.user = u.id && s.email = e.id && u.blocked = 0 && s.active = 1 && s.admin_validate = 1 && e.validated = 1 GROUP BY s.id ORDER BY in_count DESC, rating DESC, out_count DESC, hit_count DESC, name DESC LIMIT 0,20

Здесь нашел вроде как решение проблемы - http://bugs.mysql.com/bug.php?id=15606

Но так как я в мускуле пока не разбираюсь вообще, прошу помощи у профи.

Возможно ли исправить эту ошибку?

Или может быть уже вышла новая версия для MySQL 5?

p.s. Могу предоставить копию скрипта тому, кто отзовется оказать помощь.

✔ Как я генерирую статьи через ИИ, которые приносят трафик - https://webmasta.ru/blog/16-vkalyvayut-roboty-ne-chelovek-stati-s-pomoschyu-ii-kotorye-prinosyat-trafik
Mihajlo
На сайте с 30.10.2006
Offline
156
#1

вы на страницу-то заходили, что привели? там написано, что это не баг, а изменение в связи с апгрейдом MySQL

big boy
На сайте с 18.11.2006
Offline
332
#2

хотя в readme красуется надпись:

Usage Requirements
A web server running PHP 4.0.6 or greater (>=4.1 recommended)
MySQL version 3.23.4 or greater

big boy
На сайте с 18.11.2006
Offline
332
#3
Mihajlo:
вы на страницу-то заходили, что привели? там написано, что это не баг, а изменение в связи с апгрейдом MySQL

да, я видел. но от этого не лучше =)

скрипт сообщает об ошибке.

интересная вещь получается - админка работает как надо, все исправно действует, а вот клиентская часть глючит.

вопрос вот в чем - реально ли изменить скрипт, подогнать под версию MySQL 5?

big boy
На сайте с 18.11.2006
Offline
332
#4

.... up ^ ....

DI
На сайте с 03.01.2007
Offline
123
#5
big boy:
да, я видел. но от этого не лучше =)
big boy:
вопрос вот в чем - реально ли изменить скрипт

В чем вопрос-то? Чтобы за Вас все сделали, или Вы попробовали указанное Вами же решение, и ничего не получилось? Там даже разбираться-то ни в чем не надо, а найти 2 отличия в приведенном простом примере, и спроецировать на Ваш запрос:)

Если сидеть и кидать "up" на форум - вряд ли что-то заработает, как мне кажется.

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
big boy
На сайте с 18.11.2006
Offline
332
#6

DenIT, вам это может и показаться простым, однако я пока в MySQL как в темном лесу.

Вот он мой шанс наконец-то в нем разобраться.

Что конкретно нужно менять?

вот запрос, который делает скрипт при установке - http://allinone.msk.su/install_queries.sql

менять надо в нем?

хотя бы скажите что надо менять...

Там даже разбираться-то ни в чем не надо, а найти 2 отличия в приведенном простом примере, и спроецировать на Ваш запрос

Звучит так, словно это 5-ти минутное дело. Хотелось бы верить ;)

DI
На сайте с 03.01.2007
Offline
123
#7
big boy:
Что конкретно нужно менять?

в приведенной ссылке сказано, что из-за изменения синтаксиса LEFT JOIN нужно список таблиц около оператора FROM брать в скобки. Т.е. должно получиться следующее:


SELECT s.*,COUNT(DISTINCT c.id) as comment_count, AVG(v.value) as rating,COUNT(DISTINCT v.id) as num_votes, 0 as already_voted
FROM (tsl_sites AS s, tsl_users AS u, tsl_emails AS e)
LEFT JOIN tsl_comments AS c ON c.site = s.id
[... далее по тексту ...]

Менять надо в том месте скрипта, где непосредственно происходит обращение к БД (т.е. в PHP-файлах). install_queries.sql - это дамп БД, его трогать не надо, с ним все в порядке.

big boy
На сайте с 18.11.2006
Offline
332
#8

Да, я тоже нашел инфу по этому вопросу - http://www.ibresource.ru/forums/index.php?showtopic=42210&hl=top+site+list

Придется ковырять... млин, там стоооолько файлов и настроек :(

DI
На сайте с 03.01.2007
Offline
123
#9

текстовый поиск по файлам поможет, нужно искать "FROM tsl_sites AS s, tsl_users AS u, tsl_emails AS e"

big boy
На сайте с 18.11.2006
Offline
332
#10

Я просто в шоке!

Попал с первого раза и исправил нужный файл :D

Теперь все работает! Ура! Готов прыгать и раздавать всем цветочки, пускать салюты!

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