Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

"В данном разделе нет шаблонов" - во всем виноват MySQL 5.0?

Страницы: 1  |  2
25.04.2006, 02:39
Гость
Гость

Поставил Стандарт 2.3 на машину хостера. Все вроде бы ничего.. но:

При потыке создать раздел и добавить в него шаблом возникает следующий трабл:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/***/public_html/netcat/admin/subdivision/subclass.inc.php on line 16
В данном разделе нет шаблонов.


Поставил все тоже самое к себе на денвер.. все ОК!
На денвере версия MySQL 4.1.8-max
У хостера MySQL 5.0.18


Пробую sql из /netcat/admin/subdivision/subclass.inc.php

select a.Sub_Class_ID,a.Sub_Class_Name,b.Class_Name,a.Priority,a.Checked,a.Class_ID,a.EnglishName,d.Domain,c.Hidden_URL from Sub_Class AS a,Class AS b LEFT JOIN Subdivision AS c ON a.Subdivision_ID=c.Subdivision_ID LEFT JOIN Catalogue AS d ON c.Catalogue_ID=d.Catalogue_ID WHERE a.Subdivision_ID=".$loc->SubdivisionID." and a.Catalogue_ID=".$loc->CatalogueID." and a.Class_ID=b.Class_ID

На денвере все ОК
У хостера вылезает следующая ошибка:


Ошибка
SQL-запрос:

SELECT a.Sub_Class_ID, a.Sub_Class_Name, b.Class_Name, a.Priority, a.Checked, a.Class_ID, a.EnglishName, d.Domain, c.Hidden_URL
FROM Sub_Class AS a, Class AS b
LEFT JOIN Subdivision AS c ON a.Subdivision_ID = c.Subdivision_ID
LEFT JOIN Catalogue AS d ON c.Catalogue_ID = d.Catalogue_ID
WHERE a.Subdivision_ID = ".$loc->SubdivisionID."
AND a.Catalogue_ID = ".$loc->CatalogueID."
AND a.Class_ID = b.Class_ID
LIMIT 0 , 30

Ответ MySQL:

#1054 - Unknown column 'a.Subdivision_ID' in 'on clause'


Подскажите где искать причину проблемы?
25.04.2006, 10:52
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-4-1.html
Цитата:
#

Incompatible change: Beginning with MySQL 5.0.12, natural joins and joins with USING, including outer join variants, are processed according to the SQL:2003 standard. The changes include elimination of redundant output columns for NATURAL joins and joins specified with a USING clause and proper ordering of output columns. The precedence of the comma operator also now is lower compared to JOIN, LEFT JOIN, and so forth.

These changes make MySQL more compliant with standard SQL. However, they can result in different output columns for some joins. Also, some queries that appeared to work correctly prior to 5.0.12 must be rewritten to comply with the standard. For details about the scope of the changes and examples that show what query rewrites are necessary, see Section 13.2.7.1, 'JOIN Syntax'.


В общем, поменялись приоритеты обработки.
Было:
Код:

$Select = "SELECT
a.Sub_Class_ID,
a.Sub_Class_Name,
b.Class_Name,
a.Priority,
a.Checked,
a.Class_ID,
a.EnglishName,
d.Domain,
c.Hidden_URL
FROM
Sub_Class AS a,
Class AS b
LEFT JOIN
Subdivision AS c
ON a.Subdivision_ID=c.Subdivision_ID
LEFT JOIN
Catalogue AS d
ON c.Catalogue_ID=d.Catalogue_ID
WHERE
a.Subdivision_ID=".$loc->SubdivisionID."
AND
a.Catalogue_ID=".$loc->CatalogueID."
AND
a.Class_ID=b.Class_ID
ORDER BY
a.Priority
";

Стало:
Код:

$Select = "SELECT
a.Sub_Class_ID,
a.Sub_Class_Name,
b.Class_Name,
a.Priority,
a.Checked,
a.Class_ID,
a.EnglishName,
d.Domain,
c.Hidden_URL
FROM
(Sub_Class AS a,
Class AS b)
LEFT JOIN
Subdivision AS c
ON a.Subdivision_ID=c.Subdivision_ID
LEFT JOIN
Catalogue AS d
ON c.Catalogue_ID=d.Catalogue_ID
WHERE
a.Subdivision_ID=".$loc->SubdivisionID."
AND
a.Catalogue_ID=".$loc->CatalogueID."
AND
a.Class_ID=b.Class_ID
ORDER BY
a.Priority
";
25.04.2006, 16:53
Гость
Гость

Т.е. я должен поменять в subclass.inc.php с "БЫЛО" на "СТАЛО"?
25.04.2006, 17:39
Гость
Гость

Заменил - вроде заработало... посмотрим! Спасибо!
25.04.2006, 18:03
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

Вы должны взять в скобки все, что относится к FROM, специально же выделил.
25.04.2006, 18:36
Гость
Гость

Я так и сделал - и сказал что заработало ;)
25.04.2006, 19:20
Гость
Гость

Таже сама беда в другом месте - при добавление объекта...

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/obninskcit/domains/40rus.ru/public_html/netcat/require/s_list.inc.php on line 302

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/obninskcit/domains/40rus.ru/public_html/netcat/require/s_list.inc.php on line 380
26.04.2006, 16:34
Гость

Зарегистрирован:
1970-01-01
Сообщений: 665

тоже самое...
где есть JOIN, все FROM надо в скобки брать.
26.04.2006, 16:43
Гость
Гость

Ок, попробую все найти.... это нужно искать только здесь, как я понимаю, *.inc.php?
26.04.2006, 16:51
Гость
Гость

Не понятно только одно... где же обещанная СОВМЕСТИМОСТЬ с MySQL 5....

Цитата:
В общей сложности, в ядро системы было добавлено несколько десятков нововведений, среди которых стоит отметить:
- совместимость с MySQL 5
26.04.2006, 17:25
Гость
Гость

А может Вы все таки укажете в каких КОНКРЕТНо файлах необходимо произвести данные изменения???
198 196 2006-04-28 16:25:59 7944
Страницы: 1  |  2
Описание проекта