Был запущенный (в плане апдейтов и всякого мусора) форум в связке с Нюком.
Было решено отделить форум от Нюка, и полностью восстановить его работоспособность. Заодно обновить до версии 2.0.22
Собственно поплясав с бубном это удалось.
Внимательно изучив оставшиеся проблемы было установлено:
Часть зарегистрированных пользователей не имеют даты регистрации. Видимо регились через Нюк, который не удосужился вставлять дату регистрации.
В таблице phpbb_users в поле user_regdate часть пользователей сидит со значением 0 что соотвествует 01.01.1970 в списке пользователей.
Задача:
восстановить дату регистрации пользователя по дате самого раннего опубликованного им сообщения.
Таблица phpbb_posts содержит поля poster_id и post_time.
Алгоритм представляю пока следующий:
Если в таблице phpbb_users пользователь user_id имеет user_regdate равное 0, то
показать таблицу phpbb_posts где poster_id = user_id отсортированное по полю post_time по DESC (от меньшего к большему).
Взять наименьшее значение поля post_time из таблицы phpbb_posts и вставить в таблицу phpbb_users в поле user_regdate.
Вот только беда...
С MySQL не особо дружу.
Может подскажете готовый скрипт?
Или может попробуем вместе его написать?
Заранее благодарен за любую помощь.
По итогам будет опубликованно summary.
Добавлено спустя 13 минут 47 секунд:
Поковырявшись получился первый шаг:
Код: Выделить всё
SELECT post_time
FROM `phpbb_posts`
WHERE poster_id = '2'
ORDER BY `post_time` ASC
LIMIT 1
Добавлено спустя 15 минут 3 секунды:
Код: Выделить всё
UPDATE phpbb_users SET phpbb_users.user_regdate = phpbb_posts.post_time WHERE phpbb_users.user_id = phpbb_posts.poster_id;
