Консультация № 109982
18.11.2007, 13:51
0.00 руб.
0 2 2
Здрасти всем.
У меня есть документ word-а (или excel) определенной структуры, могу ли я используя PHP его прочитать его и записать сразу в БД. т.е. мне нужно что бы моя БД заполнялась автоматически и полльзователь не вводил ни каких данных.

Обсуждение

Неизвестный
18.11.2007, 15:37
общий
это ответ
Здравствуйте, KInika!
Я бы вам по советовал использовать файл расширения .csv (близкое к excel).
Тогда можно использовать такую конструкцию:
<?php

$p=@mysql_connect($dbhost,$dbuser,$dbpas); //соединяемся с хостом нашей базы
if(!$p){ echo "не возможно соединиться с базой";} // если не соединились то выводим сообщение
mysql_select_db($dbname, $p); //выбираем нашу базу данных
mysql_query("set names cp1251"); //устанавливаем кодировку для корректной работы с русским языком

$file = fopen ("text.csv","r"); //открываем наш файл "text.csv" в режиме чтения "r"
while ($dat = fgetcsv ($file,20000, " ")) //структура fgetcsv() : читаем из нашего открытого файла "$file",
//20000 - число читаемых символов, цифра должна быть больше чем количество символов в самой длинной строке нашего файла,
//3 параметр - символ разделителя слов, в данном случае табуляция(Tab)
//за один проход цикла считывается 1 строка

{
$d="insert into my_table values(‘$dat[0]‘,‘$dat[1]‘,‘$dat[2]‘)"; //создаем запрос для нашей базы

if (mysql_query($d)) echo "Успешно добавлено"; //если запрос выполнен выводим сообщение

}

mysql_close($p);
fclose($file);
//закрываем соединение с нашей базой и text.csv

?>

P.S. Самый простой способ пулучить файл .csv - это переименовать файл.txt в файл.csv
Удачи.
Неизвестный
18.11.2007, 16:39
общий
это ответ
Здравствуйте, KInika!
В пакете PEAR есть класс для работы с Экселевскими файлами(насчет того, что он сможет прочитать вордовские файлы, я не уверен). Он позволяет выдирать оттуда информацию, соответственно, информацией можно как-то оперировать, в том числе и записать в БД. В документации к PEAR Вы сможете найти более точную информацию. Сам я PEAR`ом никогда не пользовался (и, наверно, не буду, ибо ругают его очень сильно).

Поэтому ответ на Ваш вопрос - да. Но сначала надо провести детальную разведку в этой части, Вы ведь не сказали, что имеется под определенной структурой.
Форма ответа