Помощник
|
Конвертация данных БД, есть старый формат -> нужен новый формат |
wmaccel
|
Сообщение
#1
|
||
|
|
||
|
|||
ZiTosS |
31.1.2011, 15:51;
Ответить: ZiTosS
Сообщение
#2
|
|
phpnoob, попробуем уточнить, в новой таблице:
1) появились новые поля - time, set4 2) пропали поля - text, date Как я понимаю, поле date никак не связано с полем time, т.к. date это дата, time это время. Поля set4 и text, как я понимаю, так же не связаны друг с другом. Я всё правильно понял? Покажите хотя бы одну строку данных из старой таблицы, и пример как они должны выглядеть в новой. |
|
|
wmaccel
|
Сообщение
#3
|
|
Старая таблица:
[img]http://s015.radikal.ru/i333/1102/04/7874378af7fd.jpg[/img] Новая таблица: [img]http://s006.radikal.ru/i214/1102/97/c589531da456.jpg[/img] Поля set4 и text не связаны друг с другом. Поле date заменено полем time (где time должно быть в секундах). |
|
|
ZiTosS |
1.2.2011, 13:13;
Ответить: ZiTosS
Сообщение
#4
|
|
phpnoob, сейчас сделаем Делов на 10 минут, надеюсь на PHP подойдет.
|
|
|
ZiTosS |
1.2.2011, 13:51;
Ответить: ZiTosS
Сообщение
#5
|
|
phpnoob, что-то у меня секунды при конвертации с вашими не совпадают. У вас в таблице формат 01.02.11 => dd.mm.YY?
|
|
|
ZiTosS |
1.2.2011, 14:13;
Ответить: ZiTosS
Сообщение
#6
|
|
phpnoob,
[php]<?php $db_host = 'localhost'; // хост MySQL $db_login = 'root'; // юзер MySQL $db_pass = ''; // пароль MySQL $db_name = 'converter'; // имя БД $table_from = 'conv1'; // откуда конвертим $table_where = 'conv2'; // куда конвертим $insert_sql = "INSERT INTO {$table_where} VALUES"; $connect = mysql_connect($db_host, $db_login, $db_pass) or die("Не могу подключиться к серверу MySQL"); mysql_select_db($db_name, $connect) or die("Проблема выбора Базы Данных"); $res = mysql_query("SELECT *, UNIX_TIMESTAMP(STR_TO_DATE(date, '%d.%m.%y')) as date FROM `{$table_from}`"); if( mysql_num_rows($res) > 0 ) { while( $data = mysql_fetch_assoc($res) ) $insert_sql .= "(null,{$data['date']},'{$data['login']}','{$data['password']}','{$data['set1']}','{$data['set2']}','{$data['set3']}','0.00','{$data['email']}','{$data['name']}','{$data['name1']}','{$data['label']}'),"; $replacer = strrpos($insert_sql, ','); $insert_sql[$replacer] = ';'; if( mysql_query($insert_sql) ) echo "Данные успешно сконвертированы"; else echo "Ошибка в конвертации данных"; } ?>[/php] Опишу типы, которые я использовал: Таблица из которой конвертируем id - INT(11) ; login, password, email, name , name1, date, label - VARCHAR(255) ; set1, set2, set3 - VARCHAR(10) ; text - text Таблица куда конвертируем id, time - INT(11) ; login, password, email, name , name1, label - VARCHAR(255) ; set1, set2, set3, set4 - VARCHAR(10) ; По поводу преобразования даты. Сначала дата из строкового формата dd.mm.YY переводится в формат даты - YYYY-mm-dd. Затем вычисляем количество секунд с 01.01.1970 У меня получается, что 01.02.11 -> 1296507600 Как у вас получилось 1296518400 я не знаю. |
|
|
wmaccel
|
Сообщение
#7
|
|
Огромное Вам спасибо за скрипт, попробую разобраться.
По поводу времени, число 1296518400 взялось отсюда: [php]echo mktime(0,0,0,date('m'),date('d'),date('y'));[/php] Выходит я неправильно сегодняшний день перевел в секунды? |
|
|
ZiTosS |
1.2.2011, 16:13;
Ответить: ZiTosS
Сообщение
#8
|
|
phpnoob, ваш пример выдает у меня 1296507600
По разному настроены сервера. 1296518400 - 1296507600 = 10800 / 3600 = 3 Разница у нас с вами в 3 часа. Ваш сервер плюсует ещё 3 часа, возможно у вас другой часовой пояс. |
|
|
gaaarfild |
6.2.2011, 11:46;
Ответить: gaaarfild
Сообщение
#9
|
|
time - INT(11), Рекомендую ставить по возможности больше. Поле time растет постоянно.
И к 2038 году даже максимального значения INT станет недостаточно.)) |
|
|
ZiTosS |
6.2.2011, 12:16;
Ответить: ZiTosS
Сообщение
#10
|
|
|
gaaarfild, спасибо за пояснения, эио был пример Тема закрыта.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 15 | yaroslav89 | 6871 | 8.4.2024, 17:17 автор: spoyer_ru |
|
ГОРЯЧИЕ FOREX|CRYPTO ЛИДЫ. БАЗЫ ДАННЫХ [Чарджбек|Рекавери|Возврат] |
9 | Leado | 3916 | 9.2.2024, 16:04 автор: baza0013 |
|
Двойная конвертация в Google Ads | 2 | metvekot | 1196 | 22.1.2024, 4:52 автор: Skyworker |
|
Базы данных, различной тематики, выкладываем тут. Делимся, обмениваемся, заказываем, парсим. |
12 | InfoObmen | 15262 | 4.9.2022, 2:32 автор: Галецкая |
|
Сбор Данных Услуг И Специалистов Яндекс.Услуги | 2 | zkalinin | 2379 | 26.5.2022, 17:10 автор: zkalinin |
Текстовая версия | Сейчас: 25.4.2024, 13:17 |