Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Конвертировать таблицу в базе Mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
noobphp
Отправлено: 31 Января, 2011 - 11:15:09
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Немного модернизировал старую таблицу и теперь не могу перенести данные из старой в новую.
Имеется таблица users с полями:
id | login | password | set1 | set2 | set3 | email | name | name1 | date | text | label
где поле date в формате: 00.00.00 (число, месяц, год)
Нужно конвертировать в таблицу:
id | time | login |password | set1 | set2 | set3 | set4 | email | name | name1 | label
поле time должно быть в секундах
Нужен как я понимаю небольшой скрипт для этого, но сам я написать не могу, так как не умею.
Очень прошу помочь реализовать.

(Отредактировано автором: 31 Января, 2011 - 11:33:25)

 
 Top
XelaNimed
Отправлено: 03 Февраля, 2011 - 01:38:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $q = mysql_query('SELECT * FROM `users` ORDER BY `id` ASC');
  2. while($obj = mysql_fetch_object($q)){
  3.     list($day, $month, $year) = explode('.', $obj->date);
  4.     $utime = mktime(0,0,0,$month, $day, $year);
  5.     $s = 'INSERT INTO `new_table`
  6.           VALUES (NULL,
  7.                          \'' . $utime . '\',
  8.                          \'' . $obj->login . '\',
  9.                          \'' . $obj->password . '\',
  10.                          \'' . $obj->set1 . '\',
  11.                          \'' . $obj->set2 . '\',
  12.                          \'' . $obj->set3 . '\',
  13.                          \'\',
  14.                          \'' . $obj->email . '\',
  15.                          \'' . $obj->name . '\',
  16.                          \'' . $obj->name1 . '\',
  17.                          \'' . $obj->label . '\')';
  18.     mysql_query($s) or die ('Cant insert data in New_Table: ' . mysql_error());
  19. }


Я исходил из того что:
а) время в секундах Вам нужно в юникс-формате;
б) данные в старой таблице не содержат апострофов. В противном случае перед вставкой данных предварительно обработайте их с помощью mysql_escape_string и проверьте не экранируются ли данные (get_magic_quotes_gpc);
 
 Top
noobphp
Отправлено: 08 Февраля, 2011 - 14:27:08
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Спасибо Вам большое за помощь.
У меня возникла еще одна проблема.

Имеется еще 1 таблица table с полями:
login | date | time | set
где поле date в формате: 08.02.11 (число, месяц, год)
где поле time в формате: 22:09:33 (часы, минуты, секунды)
Нужно конвертировать в таблицу:
id | time | login |set | set1
поле time должно быть в секундах

Очень расчитываю на Вашу помощь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB