Эта тема на forum.dklab.ru


Сергей: Импорт csv файла в MySQL
Здравствуйте уважаемые,

подскажите пожалуйста, как мне корректно импортировать в MySQL таблицу вида:

+-----------------------------------------------------+-----------------------------+--------------------+
| /.{0,99}MSIE 4.{0,99}Windows 95.{0,99}/ | Internet Explorer 4.x | Windows 95 |
| /.{0,99}MSIE 4.{0,99}Windows 98.{0,99}/ | Internet Explorer 4.x | Windows 98 |
| /.{0,99}MSIE 4.{0,99}Windows CE.{0,99}/ | Internet Explorer 4.x | Windows CE |
| /.{0,99}MSIE 4.{0,99}Windows NT.{0,99}/ | Internet Explorer 4.x | Windows NT |
| /.{0,99}MSIE 4.{0,99}Mac_PowerPC.{0,99}/ | Internet Explorer 4.x | Macintosh PPC |
| /.{0,99}MSIE 4.{0,99}Mac_OSX.{0,99}/ | Internet Explorer 4.x | Macintosh OSX |
+-----------------------------------------------------+-----------------------------+--------------------+

в исходном файле я разделил все записи двумя двоеточеями "::" , вторая и третья колонка нормально импортируются а вот вместо первой везде 0 (ноль).
Дмитрий Котеров:
phpMyAdmin пробовали?..
Anonymous:
Спасибо Дмитрий, только я не понял причем тут phpMyAdmin? У меня задача чтобы это сделал скрипт, но все равно подскажите как это можно сделать на phpMyAdmin или где почитать лучше.
Дмитрий Котеров:
Вы хотите, чтобы Вам написали функцию, которая это делает? Может, и напишет кто-нибудь.
Про phpMyAdmin можно почитать в Поиске, в Гугле или на любом фонарном столбе, что вдоль дорог стоят.
Anonymous:
Уважаемый Дмитрий, по поводу phpmyadmin я разберусь не проблема спасибо за ценный совет. А по поводу написания скрипта, так я ни кого не просил его мне писать, я просил подсказать "как мне корректно импортировать в MySQL" => из этого можно сделать вывод что скрипт я уже написал и он у меня некорректно работает. Вот отрывок, который это делает:

...
$browsers = "browsers.csv";
mysql_query( "LOAD DATA INFILE '$browsers'
INTO TABLE agents
FIELDS TERMINATED BY '::'
LINES TERMINATED BY '\n';" ) or die( mysql_error() );
...

в файле browsers.csv у меня строчки следующего вида:

...
/.{0,99}MSIE 4.{0,99}Windows 95.{0,99}/::Internet Explorer 4.x
/.{0,99}MSIE 4.{0,99}Windows 98.{0,99}/::Internet Explorer 4.x
...

таблица следующего вида:

id INT(10) UNSIGNED not null auto_increment,
agent TINYTEXT Default NULL,
name TINYTEXT Default NULL,
PRIMARY KEY (id),
UNIQUE KEY id (id),
KEY id_2 (id)

Проблема в том, что когда я импортирую у меня в таблице agent все ячейки равны становятся 0(нулю).

Внимание вопрос. Почему так происходит?

Спасибо за терпимость с которой Вы отвечаете.
Сергей:
Ну что ни кто не знает или я глупый вопрос задал?
Дмитрий Котеров:
я просил подсказать "как мне корректно импортировать в MySQL" => из этого можно сделать вывод что скрипт я уже написал и он у меня некорректно работает
Все китайцы шестиметрового роста — чернокожие. И что из этого?..

У Вас id мешаеться, он пытается загрузиться из файла (в таблице у Вас три колонки, а в файле — только две). Возможно, прочтение документации на LOAD поможет.
Сергей:
Огромное спасибо. Вы очень помогли. Если кому будет интерестно про это написано тут http://www.mysql.com/doc/en/LOAD_DATA.html
Дмитрий Котеров:
Конечно, будет интересно. Теперь этот топик представляет интерес и для остальных посетителей.

Эта тема на forum.dklab.ru