Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: запись в БД из excel
 
 автор: Василий   (02.02.2012 в 16:31)   письмо автору
 
 

Добрый день!
Можно ли средствами mysql перенести в базу данных из программы excel?

  Ответить  
 
 автор: cheops   (02.02.2012 в 16:38)   письмо автору
 
   для: Василий   (02.02.2012 в 16:31)
 

Excel позволяет сохранять данные в CSV-формате (причем в нескольких, с разделителями в виде табуляции и в виде точки с запятой), MySQL может загружать такие файлы при помощи оператора LOAD DATA INFILE (а то и вовсе использовать файл в качестве файла данных таблицы).

  Ответить  
 
 автор: Василий   (02.02.2012 в 16:51)   письмо автору
 
   для: cheops   (02.02.2012 в 16:38)
 

CREATE TABLE IF NOT EXISTS `school` (
  `id_school` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `full_name` text NOT NULL,
  `short_name` text NOT NULL,
  `welcome_name` text NOT NULL,
  `id_town` int(11) NOT NULL,
  `id_district` int(11) NOT NULL,
  `id_region` int(11) NOT NULL,
  `id_state` int(11) NOT NULL,
  `address` varchar(255) NOT NULL,
  `tel` varchar(255) NOT NULL,
  `fax` varchar(255) NOT NULL,
  `accreditation` varchar(255) NOT NULL,
  `licence` varchar(255) NOT NULL,
  `organ` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `email_second` varchar(255) NOT NULL,
  `site` varchar(255) NOT NULL,
  `director` varchar(255) NOT NULL,
  `text` text NOT NULL,
  `ling` text NOT NULL,
  `logo` varchar(255) NOT NULL,
  `advertisment` int(1) NOT NULL DEFAULT '0',
  `coords` varchar(50) NOT NULL,
  PRIMARY KEY (`id_school`),
  KEY `id_town` (`id_town`),
  KEY `id_region` (`id_region`),
  KEY `id_state` (`id_state`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=692 ;

Как теперь
В excel колонка В - надо записать в `full_name` text NOT NULL,
Н - `tel` varchar(255) NOT NULL,
I - `email` varchar(255) NOT NULL,

  Ответить  
 
 автор: cheops   (02.02.2012 в 16:53)   письмо автору
 
   для: Василий   (02.02.2012 в 16:51)
 

Вы для начала CSV-файл создайте - это обычный текстовый файл, его структуру можно будет посмотреть и даже поправить, вплоть до добавления дополнительных полей.

  Ответить  
 
 автор: Василий   (02.02.2012 в 17:14)   письмо автору
 
   для: cheops   (02.02.2012 в 16:53)
 

вот создал. имею следующие подобные строки:
Бобровский  муниципальный района;Муниципальное общеобразовательное учреждение Бобровская средняя общеобразовательная школа № 1;397703;Бобровский  муниципальный района;
г. Бобров;Ул. Зои Космодемьянской, 150;Белькова Татьяна Васильевна;4-13-12, 4-19-65;
Fil_s_v@rambler.ru ;900

подскажите, пожалуйста, что дальше делать

  Ответить  
 
 автор: cheops   (02.02.2012 в 17:39)   письмо автору
 
   для: Василий   (02.02.2012 в 17:14)
 

Теперь нужно так отредактировать файл, чтобы количество полей в нем совпадало с количеством полей в таблице и выполнить запрос
LOAD DATA INFILE 'C:\\mysql5\\bin\\file.csv'
REPLACE INTO TABLE catalogs
FIELDS TERMINATED BY ';' ENCLOSED BY ''
LINES TERMINATED BY '\r\n';
C:\\mysql5\\bin\\file.csv - путь к вашему файлу.

PS Лучше, конечно, сначала по-эксперементировать на табличке попроще с меньшим количеством полей.

  Ответить  
 
 автор: Василий   (02.02.2012 в 22:50)   письмо автору
 
   для: cheops   (02.02.2012 в 17:39)
 

пробую
не записывается
#1045 - Access denied for user 'assn'@'localhost' (using password: YES)
LOAD DATA INFILE 'D:\\proba.csv' REPLACE INTO TABLE proba
FIELDS TERMINATED BY ';'
ENCLOSED BY ''
LINES TERMINATED BY '\r\n';


Вы писали:
Теперь нужно так отредактировать файл, чтобы количество полей в нем совпадало с количеством полей в таблице и выполнить запрос
Аннинский муниципальный район;Муниципальное общеобразовательное учреждение 
Верхнетойденская средняя общеобразовательная школа;396210;Аннинский муниципальный район;
С. Верхняя Тойда;Ленина, 19-а;Петрова  Галина Митрофановна;(47346) 4-46-33;v-toida@mail.ru  ;96

правильно ли я понимаю что теперь, к примерк поле director должен по очередности соответстовать полю "Петрова Галина Митрофановна"?

  Ответить  
 
 автор: cheops   (03.02.2012 в 01:41)   письмо автору
 
   для: Василий   (02.02.2012 в 22:50)
 

У вас прав доступа нет у пользователя assn чтобы выполнять такие операции.

  Ответить  
 
 автор: Василий   (03.02.2012 в 02:05)   письмо автору
 
   для: cheops   (03.02.2012 в 01:41)
 

ну как же нет?
все исправно работало.

  Ответить  
 
 автор: cheops   (03.02.2012 в 13:15)   письмо автору
 
   для: Василий   (03.02.2012 в 02:05)
 

>Access denied for user 'assn'@'localhost'
Эта фраза расшифровывается однозначно, для пользователя assn на локальной машине нет прав доступа для выполнения этой операции. Этот пользователь как появился? Нельзя временно переключиться на root или выставить этому побольше прав?

  Ответить  
 
 автор: василий   (03.02.2012 в 18:26)   письмо автору
 
   для: cheops   (03.02.2012 в 13:15)
 

Этот пользователь был всегда.
записи в базу данных записывались и проблем до этого не было

  Ответить  
 
 автор: cheops   (03.02.2012 в 18:28)   письмо автору
 
   для: василий   (03.02.2012 в 18:26)
 

>Этот пользователь был всегда.
Хм... ну всегда это слишком сильное утверждение в отношении компьютеров, ведь были времена когда не было на вашей машине MySQL, да и самого компьютера, когда-то все это появилось и было установлено. Устанавливали сами? Если да, то не помните, все-таки подробностей как дело происходило?

  Ответить  
 
 автор: Василий   (03.02.2012 в 18:32)   письмо автору
 
   для: cheops   (03.02.2012 в 18:28)
 

ну почему не помню. было два года. установил пользователя в phpmyadmin - установил все "галочки"
да что там галочки - только вчера внес новую статью на сайт

  Ответить  
 
 автор: cheops   (03.02.2012 в 18:35)   письмо автору
 
   для: Василий   (03.02.2012 в 18:32)
 

Погодите это дело где происходит локально или на сервере? Если на сервере, то все нормально, такие права доступа на хостингах, как правило, не предоставляют - нужно идти другим путем, формировать из CSV-файла SQL-дамп, который бы вы могли закинуть на сервер.

  Ответить  
 
 автор: Василий   (03.02.2012 в 18:36)   письмо автору
 
   для: cheops   (03.02.2012 в 18:35)
 

успокоили.
да на сервере.
а как это провернуть теперь?

  Ответить  
 
 автор: cheops   (03.02.2012 в 18:45)   письмо автору
 
   для: Василий   (03.02.2012 в 18:36)
 

Лучше новую тему тогда завести, а то к этой уже вряд ли кто подключится... да и длинная очень. В общем нужна таблица и CSV (лучше даже в виде файла, так как в виде текста не ясно что там с \r\n на конце).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования