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
Форумы портала PHP.SU :: Версия для печати :: Конвертировать таблицу в базе Mysql
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Конвертировать таблицу в базе Mysql

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

1. noobphp - 31 Января, 2011 - 11:15:09 - перейти к сообщению
Немного модернизировал старую таблицу и теперь не могу перенести данные из старой в новую.
Имеется таблица 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 должно быть в секундах
Нужен как я понимаю небольшой скрипт для этого, но сам я написать не могу, так как не умею.
Очень прошу помочь реализовать.
2. XelaNimed - 03 Февраля, 2011 - 01:38:28 - перейти к сообщению
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);
3. noobphp - 08 Февраля, 2011 - 14:27:08 - перейти к сообщению
Спасибо Вам большое за помощь.
У меня возникла еще одна проблема.

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

Очень расчитываю на Вашу помощь.

 

Powered by ExBB FM 1.0 RC1