проблемы с birthdays

Главные вкладки

Аватар пользователя jerboa7 jerboa7 15 октября 2007 в 10:58

Никак не могу нормально установить birthdays.
выдается сообщение:user warning: 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 '(birthday) as d, month(birthday) as m, query: SELECT day(birthday) as d, month(birthday) as m, year(birthday) as y, DATE_FORMAT( NOW( ) , '%Y' ) - DATE_FORMAT( birthday, '%Y' ) - ( DATE_FORMAT( NOW( ) , '%m%d' ) < DATE_FORMAT( birthday, '%m%d' ) ) AS age FROM dob WHERE uid = '1' LIMIT 1 in velo.chepetsk.ru/www/includes/database.mysql.inc on line 167.
user warning: 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 '(dob.birthday) as d FROM dob, users WHERE users.uid query: SELECT dob.uid, users.name, month(dob.birthday) as m, day(dob.birthday) as d FROM dob, users WHERE users.uid = dob.uid AND DAYOFYEAR(dob.birthday) >= DAYOFYEAR(curdate()) order by m, d limit 0,6 in velo.chepetsk.ru/www/includes/database.mysql.inc on line 167.
user warning: 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 '(dob.birthday) as d FROM dob, users WHERE users.uid query: SELECT dob.uid, users.name, month(dob.birthday) as m, day(dob.birthday) as d FROM dob, users WHERE users.uid = dob.uid AND DAYOFYEAR(dob.birthday) >= 0 AND DAYOFYEAR(dob.birthday) < DAYOFYEAR(curdate()) ORDER BY m, d limit 0,6 in velo.chepetsk.ru/www/includes/database.mysql.inc on line 167.
Что делаю не так?
Спасибо.

Комментарии

Аватар пользователя axel axel 15 октября 2007 в 12:48

Посмотри в example.com/admin/log/status какая версия mysql? Функция DAY() была добавлена в mysql 4.1.1. В старых версиях следует использовать DAYOFMONTH().

Аватар пользователя axel axel 16 октября 2007 в 11:59

Закрыл поспешно открытый багрепорт. В коде последней версии 5.x-1.x-dev всё чисто - её и следует ставить.

Аватар пользователя jerboa7 jerboa7 16 октября 2007 в 10:11

MySQL database 4.0.26
В логах еще предупреждение Database schema Out of date
Some modules have database schema updates to install. You should run the database update script immediately.
Может, проблема в этом?

Не нашла функцию DAY

result = db_query (
DATE_FORMAT({dob}.birthday,'$current_year%%m%%d') - DATE_FORMAT(ADDDATE(NOW(),INTERVAL %d SECOND),'%%Y%%m%%d') >= 0
AND
DATE_FORMAT({dob}.birthday,'$current_year%%m%%d') - DATE_FORMAT(ADDDATE(ADDDATE(NOW(),INTERVAL %d SECOND),INTERVAL %d DAY),'%%Y%%m%%d') < 0
) )
ORDER BY MONTH({dob}.birthday), DAYOFMONTH({dob}.birthday), YEAR({dob}.birthday), {users}.name", $timezone, $amount, $timezone, $timezone, $amount
);
Тут уже есть DAYOFMONTH.
Или я не там смотрю?

Аватар пользователя axel axel 16 октября 2007 в 11:39

Я смотрел на текст ошибки, там явно в запросе фигурирует DAY: SELECT day(birthday). Вообще надо код глянуть.

Аватар пользователя axel axel 16 октября 2007 в 11:44

Оппа, действительно нет в коде. В birthdays 5.x-1.x-dev вообще не вижу тех запросов, что у тебя выдавали ошибку. У тебя какая версия модуля?

Аватар пользователя axel axel 16 октября 2007 в 11:55

Чтобы не было 'database schema out of date' надо залогиниться на сайте пользователем #1 (админом), перевести сайт в оффлайн, затем выбрать example.com/update.php и провести процедуру апдейта данных. Это бывает нужно после переустановки модулей, когда новые версии модулей требуют другой структуры своих таблиц.

Аватар пользователя axel axel 18 октября 2007 в 1:39

Тут какая-то нестыковка. В первом сообщении были ошибки с функцией day (см. текст топика), на mysql 4.0.26 эти функции не работают, поэтому не работает модуль. Но в модуле версии 5.x-1.x-dev этой функции уже нет и значит таких ошибок возникать не может. Либо у тебя другая версия модуля, либо я чего-то не допонял.

Аватар пользователя jason32 jason32 16 октября 2007 в 17:52

что-то я не пойму, Axel же указал, что "Посмотри в example.com/admin/log/status какая версия mysql? Функция DAY() была добавлена в mysql 4.1.1."
А в ответ MySQL database 4.0.26. Надо обновить базу до 4.1 - это многие не знают, но версии 4.0 и 4.1 сильно различаются, в этом как я понимаю и проблема

Аватар пользователя jerboa7 jerboa7 16 октября 2007 в 21:43

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

Аватар пользователя jerboa7 jerboa7 18 октября 2007 в 21:31

Axel! Я Туплю!!! Меня Друпал ввел в заблуждение. На странице модулей он мне упорно выдавал, что стоит 5.x-1.x-dev. Проверила файл на площадке - в действительности просто 5.x-1.x! Скачала новый с оф.сайта- все заработало. Спасибо за помощь!