|
|
|
| У меня есть БД, работает - все OK. Одна проблема: мне приходится все данные забивать вручную. Я знаю, что можно делать так: загрузить на сервер файл EXCEL и база сама загрузит данные.
Подскажите, пожалуйста, как это сделать. Выручайте! Очень надо ! А то я скоро стану быстрей всех в мире печатать. | |
|
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 19:22)
| | Я эти темы смотрел уже, там видно обсуждают другие этапы.
Мне желательно понять с нуля.
Пример:
Берем файл EXCEL .......... | |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 19:47)
| | 1) Берём Excel-файл, сохраняем его как CSV-файл - это текстовый файл, поля в строке в котором разделены точкой с запятой.
2) Загружаем файл на сервер.
3) Разбираем загруженный файл либо при помощи стандартной функции fgetcsv(), либо при помощи регулярных выражений. В результате получается, как правило, массив.
4) Данные из массива записываем в базу данных. | |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 19:52)
| | 1) 2) Сделал.
3) Разбираем загруженный файл либо при помощи стандартной функции fgetcsv(), либо при помощи регулярных выражений. В результате получается, как правило, массив. - Раскройте, пожалуйста, по подробней. | |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 20:05)
| | Этот вопрос как раз и разбирается в по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5655
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3453
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4843
Возможно вас также заинтересует тема по ссылке
http://www.softtime.ru/info/csv.php
Если разбор всё же вызывает затруднение - прикрепите к сообщению CSV-файл, который, требует подвергнуть разбору, чтобы можно было привести конкретный код? | |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 20:15)
| | ни че непонял. выручайте образец нужен | |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 20:22)
| |
<?php
$f = fopen('list.csv', 'rb'); $maxlen = 0;
while(!feof($f))
{
$len = strlen(fgets($f));
if($len > $maxlen) $maxlen = $len;
}
fseek($f, 0, SEEK_SET);
$line = "INSERT INTO TAB VALUES \r\n";
$sep = ' ';
while($arr = fgetcsv($f, $maxlen, ';','"'))
{
$line .= "$sep(NULL"; $sep = ',';
foreach($arr as $val)
$line .= ",'". mysql_escape_string($val)."'";
$line .= ")\r\n";
}
mysql_query($line);
?>
|
В предположении, что в таблице самый первый столбец - autoincrement primary key, а остальные соответствуют CSV-листу.
Ну и что сам лист не длиннее буфера запроса MySQL | |
|
|
|
|
|
|
|
для: Trianon
(24.10.2006 в 20:59)
| | я что то неразберу, можно для лохов разжевать | |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 21:47)
| | Создайте таблицу
CREATE TABLE `TAB` (
`id` int(11) NOT NULL auto_increment,
`putdate` date NOT NULL,
`description` text NOT NULL,
`phone` tinytext NOT NULL,
`firm` tinytext NOT NULL,
`email` tinytext NOT NULL,
PRIMARY KEY (`id`)
);
|
И используйте приведённый выше скрипт для разбора данных из CSV-файла и помещения в таблицу TAB. | |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 21:59)
| | У меня был файл который считывал зи базы данных. Мне таблицу вместо него вставлять?
<?php
$hostname = "baze.an-triumf.ru:64000";
$username = "t**********";
$password = "********";
$dbName = "********";
$userstable = "arenda_kvartira_1_komn";
mysql_connect($hostname,$username,$password) or die ("kkkkkkkkkkkkkkkkkkk");
mysql_select_db("$dbName") or die ("kkkkkkkkkkkkk");
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
|
| |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 22:16)
| | Нет, вам нужно таблицу развернуть в базе данных $dbName. Просто выполнить приведённый выше SQL-запрос, чтобы он создал таблицу TAB. | |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 22:29)
| | таблица создалась, но как сделать считывание информации
1. есть файл на сервере.
2 таблица создана.
А дальше что? | |
|
|
|
|
|
|
|
для: krok-m
(24.10.2006 в 22:35)
| | Вместо файла list.csv указывайте путь к CSV-файлу. | |
|
|
|
|
|
|
|
для: cheops
(25.10.2006 в 00:23)
| | Я это понял, в какой файл вставлять данный скрипт. | |
|
|
|
|
|
|
|
для: krok-m
(25.10.2006 в 06:42)
| | не надо его никуда вставлять.
Просто добавьте в его начало Ваши строки, обеспечивающие соединение с БД:
$hostname = "baze.an-triumf.ru:64000";
$username = "t**********";
$password = "********";
$dbName = "********";
mysql_connect($hostname,$username,$password) or die ("kkkkkkkkkkkkkkkkkkk");
mysql_select_db("$dbName") or die ("kkkkkkkkkkkkk");
|
| |
|
|
|
|
|
|
|
для: cheops
(24.10.2006 в 22:29)
| | А если пойти более простым путем?
Загружать файл сразу в базу данных.
Я попробывал, а она выдает ошибку
Ошибка
Invalid parameter for CSV import: Строки разделены
Может подскажите, какая структура должна быть у документа, оталкиваять из преведущих форм | |
|
|
|