обновление phpBB 1.4.4 до последней версии

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

GalS только без phpbb_
/DiOs
у нее все таблицы (и старые и новые без префиксов).
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
GalS
phpBB 1.4.1
Сообщения: 44
Стаж: 18 лет 6 месяцев

Сообщение GalS »

нет. доступен дамп старой базы в sql. но там не совпадает формат и размер полей
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

GalS Ответьте в аську
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 19 лет 2 месяца
Откуда: Ленинград

Сообщение /DiOs »

GalS
Ну так создайте еще одну базу и разверните старый дамп в нее. У вас дамп схемы, данных или всего вместе?
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
GalS
phpBB 1.4.1
Сообщения: 44
Стаж: 18 лет 6 месяцев

Сообщение GalS »

все вместе. только теперь не получается развернуть его в читаемом виде - ни кои ни вин не отображает правильно русский текст :(
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

/DiOs
Что не так?

Код: Выделить всё

update posts set posts.post_time = UNIX_TIMESTAMP o.posts.post.time where posts.post_id = o_posts.post_id;
Ругается
syntax to use near 'o.posts.post.time where posts.post_id = o_posts.post_id'
:(

Добавлено спустя 1 минуту 11 секунд:

Код: Выделить всё

update posts set posts.post_time = UNIX_TIMESTAMP o_posts.post_time where posts.post_id = o_posts.post_id
Добавлено спустя 54 секунды:

Ругается
syntax to use near 'o_posts.post_time where posts.post_id = o_posts.post_id'
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 19 лет 2 месяца
Откуда: Ленинград

Сообщение /DiOs »

Палыч писал(а):UNIX_TIMESTAMP o_posts.post_time
По-любому, UNIX_TIMESTAMP -- это функция, поэтому ее аргументы надо заключать в круглые скобки.
Палыч писал(а):o_posts.post_time
Что записано в этом поле? Текстуально.

Добавлено спустя 1 минуту 21 секунду:

Когда я давал пример своего кода, то подразумевал, что в varchar старой базы просто записан timestamp в виде строки. Я был не прав?
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
GalS
phpBB 1.4.1
Сообщения: 44
Стаж: 18 лет 6 месяцев

Сообщение GalS »

текст время '2002-06-04 11:56' и ип '212.42.53.200'
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

/DiOs
По-моему там надо FROM использовать... :?

Добавлено спустя 11 минут 28 секунд:

Имеем: базу NEW и базу OLD
Из базы OLD таблица posts скопирована в NEW под именем o_posts
В обоих таблицах есть поле post_time
запрос

Код: Выделить всё

update posts set posts.post_time = o_posts.post_time;
выдает ошибку #1109 - Unknown table 'o_posts' in field list
Блин...

Добавлено спустя 42 минуты 52 секунды:

Так, с синтаксисем вроде разобрался

Код: Выделить всё

update posts set posts.post_time = (select post_time from postso where posts.post_id = postso.post_id)
Переносит только год (где-то так и ожидал :().
Теперь бы понять как данные вида " '2002-06-04 11:56' перевести в '1023177373' :D
Последний раз редактировалось Палыч 24.10.2006 23:39, всего редактировалось 1 раз.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 19 лет 2 месяца
Откуда: Ленинград

Сообщение /DiOs »

Палыч писал(а):Теперь бы понять как данные вида " '2002-06-04 11:56' перевести в '1079597469'
Дык тыть, ты ж сам писал: unix_timestamp, только аргумент в скобки возьми!

Добавлено спустя 3 минуты:

Только учти, что конструкция, которую ты только что написал, можно применять тогда, когда таблица-приемник меньше или равна (с т.з. post_id) таблицы-источника. Иначе поля, для строк которых не будет соответствия в источнике, обнулятся. Во всяком случае, в Оракле :) Хотя в данном случае это и не очень важно, но на будущее.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

/DiOs писал(а): unix_timestamp, только аргумент в скобки возьми!
Не хочет... Не могу найти описание unix_timestamp как функции :?
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 19 лет 2 месяца
Откуда: Ленинград

Сообщение /DiOs »

Палыч писал(а):Не могу найти описание unix_timestamp как функции

Код: Выделить всё

`UNIX_TIMESTAMP(date)'
     If called with no argument, returns a Unix timestamp (seconds since
     `'1970-01-01 00:00:00'' GMT). If `UNIX_TIMESTAMP()' is called with
     a `date' argument, it returns the value of the argument as seconds
     since `'1970-01-01 00:00:00'' GMT.  `date' may be a `DATE' string,
     a `DATETIME' string, a `TIMESTAMP', or a number in the format
     `YYMMDD' or `YYYYMMDD' in local time:

          mysql> select UNIX_TIMESTAMP();
                  -> 882226357
          mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
                  -> 875996580

     When `UNIX_TIMESTAMP' is used on a `TIMESTAMP' column, the function
     will receive the value directly, with no implicit
     "string-to-unix-timestamp" conversion.  If you give
     `UNIX_TIMESTAMP()' a wrong or out-of-range date, it will return 0.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

/DiOs писал(а): когда таблица-приемник меньше или равна
Равны по числу записей...
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 19 лет 2 месяца
Откуда: Ленинград

Сообщение /DiOs »

Палыч писал(а):Равны по числу записей...
Да не совсем. По числу записей с совпадающим ключем. Т.е. все значения ключа приемника должны иметься в источнике. Для того, чтобы не заморачиваться надо немножко иначе where строить.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

Код: Выделить всё

update posts set posts.post_time = 'unix_timestamp (select postt_time from postso where posts.post_id = postso.post_id)'
возвращает нули...
/DiOs писал(а):надо немножко иначе where строить.
?

Добавлено спустя 1 минуту 14 секунд:
/DiOs писал(а):Т.е. все значения ключа приемника должны иметься в источнике.
по post_id равны
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.

Вернуться в «Поддержка phpBB 2.0.x»