Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 6-й класс
Рейтинг: 1257
∙ повысить рейтинг »
amnick
Статус: Профессионал
Рейтинг: 1121
∙ повысить рейтинг »
Палян Александр Михайлович
Статус: 6-й класс
Рейтинг: 309
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1214
Дата выхода:12.08.2010, 11:00
Администратор рассылки:Устинов С.Е., Профессионал
Подписчиков / экспертов:332 / 149
Вопросов / ответов:1 / 2
IRC-канал по теме:#php

Вопрос № 179677: Здравствуйте, у меня такая задача: мне нужно из ячеек файла excel копировать(или обновлять) данные в соответствующие ячейки БД Mysql, в файле будут такие колонки: номер,название,категория,цена1,цена2,цена3,цена4,цена5,цена6,цена7,цена8 И все эт...



Вопрос № 179677:

Здравствуйте, у меня такая задача: мне нужно из ячеек файла excel копировать(или обновлять) данные в соответствующие ячейки БД Mysql, в файле будут такие колонки:
номер,название,категория,цена1,цена2,цена3,цена4,цена5,цена6,цена7,цена8
И все эти значения у меня находятся по разным таблицам в базе, я думаю, что это повышает сложность задачи.
Говорят, что это можно реализовать с помощью phpmyadmin, но большинство цен дробные (90,45).
Если не получится реализовать это какими-либо программными средствами, то мне придется присать скрипт, я изучаю php, вот буду писать его на Php.
Подскажите пожалуйста технологию работы скрипта или пример, я думаю, что это легко (относительно), - загрузить файл .csv на сервер и запустить скрипт, считать оттуда данные и скопировать в соответствующие ячейки. Но не знаю как это реализовать.
Я смотрел в книгах по Php работу с файлами csv, но там только преобразование его в Html.

Отправлен: 07.08.2010, 10:46
Вопрос задал: Исаак Моисеевич, 4-й класс
Всего ответов: 2
Страница вопроса »


Отвечает lupus campestris, Модератор :
Здравствуйте, Исаак Моисеевич.
Дня начала несколько просто общих замечаний:
а) дробность цен на сложность задачи не влияет;
б) файл в формате csv - это просто текстовый файл, то есть никаких проблем в работе с ним нет.
Не совсем понятно, на какой операционной системе работает сервер и насколько часто возникает задача такого переноса данных, то есть до какой степени ее нужно автоматизировать.
В целом же я вижу два возможных направления, как действовать. Буду предполагать, что Вы сами руками экспортируете данные из excel-файла в файл в формате csv, а затем загружаете его на сервер.
Вариант 1. Основной упор - на средства базы данных.
MySQL поддерживает импорт данных из файлов csv. Импортировать данные можно разными способами - SQL-командой или с помощью PhpMyAdmin. Последний вариант подразумевает, что Вам это придется делать вручную, кроме того, PhpMyAdmin должен быть установлен на сервере. Нужен он там или нет - решать Вам. Возможно, Вам понравятся как ие-то его возможности. А может быть все наоборот и Вы не захотите ставить лишнего на сервер. Факт в том, что можно обойтись и без PhpMySQL и загружать данные из файла SQL-командой, причем это можно делать и автоматически. Да, забыла сказать. Этот вариант предполагает, что в БД создается некая временная таблица для хранения именно данных из файла. Вариант загрузки с помощью SQL найти несложно, например - вот. Как импортировать данные в PhpMyAdmin, думаю, разберетесь, там достаточно понятный веб-интерфейс. Итак, первый шаг пройден - есть временная таблица с данными из файла. Теперь шаг второй - просто с помощью запросов UPDATE обновляете данные в Ваших таблицах, забирая новые данные из этой временной таблицы. Задача решена.
Вариант 2. Основной упор - на средства скриптового язык а. Вам нужно будет написать скрипт, достаточно несложный. Алгоритм работы скрипта: открываем csv-файл, считываем его построчно, для каждой строки определяем разделитель (";") и данные между разделителями записываем в переменные, затем выполняем несколько запросов к БД и обновляем таблицы этими новыми данными, как только все строчки пройдены - закрываем файл. На php я не пишу, но на perl это действительно все просто делается. Может быть, Вам стоит присмотреться и к perl. ;)
Если будут вопросы - обращайтесь. И по работе с SQL, и с написанием скрипта, и вообще любые.
Удачи!
-----
«С кем тяжело молчать, с тем не о чем говорить» (Метерлинк)

Ответ отправил: lupus campestris, Модератор
Ответ отправлен: 07.08.2010, 21:29
Номер ответа: 262760
Россия, Москва
Адрес сайта: http://lupus-campestris.blogspot.com/

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 262760 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает Ivol84, 5-й класс :
    Здравствуйте, Исаак Моисеевич.
    По работе с CSV никаких проблем быть не должно(смотрите приложение).

    Приложение:

    Ответ отправил: Ivol84, 5-й класс
    Ответ отправлен: 09.08.2010, 12:51
    Номер ответа: 262776

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 262776 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное