|
|
|
| В поисках выхода обратилась к форумам ... ,у меня такая проблема :
Надо ввести 2000 пользователей в тавлицу MySQL .Создала файл Excel с нужными поллями и данными ,а как загрузить в MySQL ( в уже существующую таблицу users ) не знаю
Очень прошу помочь | |
|
|
|
|
|
|
|
для: Elina
(21.06.2005 в 10:22)
| | Поищи в поисковиках инфу о ODBC-драйвере, всё сразу станет понятно. | |
|
|
|
|
|
|
|
для: Elina
(21.06.2005 в 10:22)
| | Можно сохранить лист с пользователями в CSV-формате (это текстовый файл, поля в котором разделены точкой с запятой ;). Можно прочитать содержимое файла при помощи функции file, которая поместит каждую строчку в элемент массива, а потом разбить каждую такую строку при помощи функции explode, что-то подобное осуществляется в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3453 только там не точка с запятой, а просто запятая. | |
|
|
|
|
|
|
|
для: cheops
(21.06.2005 в 12:47)
| | Ниже указанный код (предположим хотим создать такую же таблицу)
<?
CREATE TABLE 'test' (
'no' INT NOT NULL ,
'1' CHAR( 100 ) NOT NULL ,
'2' CHAR( 100 ) NOT NULL ,
'3' CHAR( 100 ) NOT NULL ,
'4' CHAR( 100 ) NOT NULL ,
'5' CHAR( 100 ) NOT NULL ,
'6' CHAR( 100 ) NOT NULL ,
'7' CHAR( 100 ) NOT NULL ,
'8' CHAR( 100 ) NOT NULL ,
'9' CHAR( 100 ) NOT NULL ,
'10' CHAR( 100 ) NOT NULL ,
'11' CHAR( 100 ) NOT NULL ,
'12' CHAR( 100 ) NOT NULL ,
'13' CHAR( 100 ) NOT NULL ,
INDEX ( 'no' )
);
?>
помещаем в файл php .
В какую директорию надо поместить этот файл php + файл exel (с данными)?
Надо ли потом как то запустить файл php или это просходит автоматически?
спасибо | |
|
|
|
|
|
|
|
для: Elina
(21.06.2005 в 16:04)
| | это файл sql...он создает таблицу из 14 столбцов...и ничего более...его надо запустить одн раз при создании таблицы | |
|
|
|
|
|
|
|
для: Elina
(21.06.2005 в 16:04)
| | вам нужен код, который указан в теме http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3453 после того, который Вы нам привили... тот код вы сохраняете в файл.php и кладети в папку, и в эту же папку файл.csv (в excel - сохранить как... - файл csv)
код в файл.php файле надо будет слегка подправить...и запускать его надо каждый раз, как измениться сожержание файл.csv | |
|
|
|
|
|
|
|
для: Elina
(21.06.2005 в 10:22)
| | я делал это так:
1. создал таблицу в excel
2. сохранил ее как users.txt (c разделитилями табуляции)
3. в готовую sql таблицу загрузил данные с помощью команды
Load data local infile 'users.txt' into table название_таблицы (параметр1, параметр2, ... параметрN) делал я это локально в MySQL Control Center.
И все... | |
|
|
|
|
|
|
|
для: Peter
(21.06.2005 в 16:29)
| | Спасибо за ответы
P@Sol ,
...и запускать его надо каждый раз, как измениться сожержание файл.csv
Вопрос : как именно его запускать (какой командой) и от куда ?
Peter ,
1 ) если в этой таблице уже есть данные ,то после команды :
Load data local infile 'users.txt'
эти данные сохраняются ?
2) Надо ли писать в файле excel название полей или достаточно только
данные ?
3) как сохранить файл txt c разделитилями табуляции (табуляцию надо
вносить вручную ) ? | |
|
|
|
|
|
|
|
для: Elina
(22.06.2005 в 09:42)
| | > Вопрос : как именно его запускать
>(какой командой) и от куда ?
что то типа www.вашсайт.ru/папка/update.php (update.php этот файл с кодом про который говорилось выше)
>
> 3) как сохранить файл txt c
>разделитилями табуляции (табуляцию надо
> вносить вручную ) ?
табуляция расставляеться автоматически, также как и при сохранении в csv - запятые | |
|
|
|
|
|
|
|
для: P@Sol
(22.06.2005 в 10:15)
| | P@Sol ,
сохранила файл в формате txt ,но когда его открыла запятых не видно -
И не все данныые один под другим (некоторрые смещены влево)
так и должно быть ? | |
|
|
|
|
|
|
|
для: Elina
(22.06.2005 в 10:40)
| | Да, так и должно быть, но про запятые не очень понятно... почему вы ожидаете их? | |
|
|
|
|
|
|
|
для: cheops
(22.06.2005 в 10:48)
| | cheops ,
для того чтобы знать где начинается новое поле (каждой строки)
запятые не нужны ? | |
|
|
|
|
|
|
|
для: Elina
(22.06.2005 в 11:05)
| | "файл txt c разделитилями табуляции" - данные разделяются символом табуляции
а новую строку видимо он автоматом определяет;) | |
|
|
|
|
|
|
|
для: Elina
(22.06.2005 в 09:42)
| | 1) Да, предварительно загруженные данные сохраняются в таблице.
2) Вы можете писать названия полей, но они попадут в конечный файл и вам потребуется в ручную их удалять. | |
|
|
|
|
|
|
|
для: cheops
(22.06.2005 в 10:37)
| | Всем большое спасобо за помощь
буду пробывать | |
|
|
|
|
|
|
|
для: Elina
(22.06.2005 в 13:45)
| | Есть проблема
попыталась создать новую таблицу в б/д
<?php
include "config.php";
CREATE TABLE 'users_temp' (
'user_id' int(11) NOT NULL auto_increment,
.......
.......
'points' int(10) default '0',
PRIMARY KEY ('user_id'),
KEY 'uid' ('user_id'),
KEY 'uname' ('username'),
KEY 'user_session_time' ('user_session_time')
);
?>
Запускаю через www.сайт.ru/папка/update.php
Выдаёт ошибку -
Parse error: parse error, unexpected T_STRING
- указывает на CREATE TABLE 'nuke_users_tet' (
В чём ошибка ? | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 10:41)
| | Доброе утро, Elina..дело в том...что Вы наверно не правильно меня поняли...счас попробую объяснить сново | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 10:41)
| |
CREATE TABLE 'test' (
'no' INT NOT NULL ,
'1' CHAR( 100 ) NOT NULL ,
'2' CHAR( 100 ) NOT NULL ,
'3' CHAR( 100 ) NOT NULL ,
'4' CHAR( 100 ) NOT NULL ,
'5' CHAR( 100 ) NOT NULL ,
'6' CHAR( 100 ) NOT NULL ,
'7' CHAR( 100 ) NOT NULL ,
'8' CHAR( 100 ) NOT NULL ,
'9' CHAR( 100 ) NOT NULL ,
'10' CHAR( 100 ) NOT NULL ,
'11' CHAR( 100 ) NOT NULL ,
'12' CHAR( 100 ) NOT NULL ,
'13' CHAR( 100 ) NOT NULL ,
INDEX ( 'no' )
);
|
этот код создания бд и его надо запустить один раз...это можно сделать двумя способами(на самом деле их больше):
1. если у вас на сервере есть phpmyadmin, то надо зайти в него, создать новую базу данных, допустим magazin. После создания базы данных ищем кнопку SQL и код, который приведен выше, вставляем в окошко...нажимаем "Пошел" и таблица создана.
2. создать файл newbd.php
<?
$host = ваш хост; //эти параметры
$user = ваш юзер; // надо узнать
$pass = ваш пароль;// у админа
$bd = ваша бд (допустим magazin);
if (!mysql_pconnect($host,$user,$pass)) echo "Нет соединения";
if (!mysql_select_db($db))
{ echo "нет такой бд";
if(!mysql_query(create database $db)) echo "не могу создать новую бд";
else "бд $bd создана";
}
$sql = "CREATE TABLE 'test' (
'no' INT NOT NULL ,
'1' CHAR( 100 ) NOT NULL ,
'2' CHAR( 100 ) NOT NULL ,
'3' CHAR( 100 ) NOT NULL ,
'4' CHAR( 100 ) NOT NULL ,
'5' CHAR( 100 ) NOT NULL ,
'6' CHAR( 100 ) NOT NULL ,
'7' CHAR( 100 ) NOT NULL ,
'8' CHAR( 100 ) NOT NULL ,
'9' CHAR( 100 ) NOT NULL ,
'10' CHAR( 100 ) NOT NULL ,
'11' CHAR( 100 ) NOT NULL ,
'12' CHAR( 100 ) NOT NULL ,
'13' CHAR( 100 ) NOT NULL ,
INDEX ( 'no' )
)";
if (!mysql_query($sql)) echo "Ошибка";
else "Новая таблица создана";
?>
|
| |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 10:54)
| | P@Sol ,
б/д уже готова мне надо добавить новую таблицу ...,а потом в неё данные .
В include "config.php" указан $host ,$user, $pass,$dbname
И при помощи -
CREATE TABLE 'users_temp' (
'user_id' int(11) NOT NULL auto_increment,
.......
.......
'points' int(10) default '0',
PRIMARY KEY ('user_id'),
KEY 'uid' ('user_id'),
KEY 'uname' ('username'),
KEY 'user_session_time' ('user_session_time')
);
?>
- пытаюсь создать новую таблицу
может что то не не правильно ? | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 11:08)
| |
<?
include "config.php";
global $host ,$user, $pass,$dbname;
if (!mysql_pconnect($host,$user,$pass)) echo "Нет соединения"; //соединяемся с бд
if (!mysql_select_db($dbname)) echo "нет такой бд"; //выбираем уже созданную таблицу
//формируем запрос на создание таблицы
$sql = "CREATE TABLE 'test' (
'no' INT NOT NULL ,
'1' CHAR( 100 ) NOT NULL ,
'2' CHAR( 100 ) NOT NULL ,
'3' CHAR( 100 ) NOT NULL ,
'4' CHAR( 100 ) NOT NULL ,
'5' CHAR( 100 ) NOT NULL ,
'6' CHAR( 100 ) NOT NULL ,
'7' CHAR( 100 ) NOT NULL ,
'8' CHAR( 100 ) NOT NULL ,
'9' CHAR( 100 ) NOT NULL ,
'10' CHAR( 100 ) NOT NULL ,
'11' CHAR( 100 ) NOT NULL ,
'12' CHAR( 100 ) NOT NULL ,
'13' CHAR( 100 ) NOT NULL ,
INDEX ( 'no' )
)";
//создаем
if (!mysql_query($sql)) echo "Ошибка";
else "Новая таблица создана";
?>
|
тогда так | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 11:18)
| | P@Sol,
почему то выдал ошибку (упал на - if (!mysql_query($sql)) echo "Ошибка"; )
но таблицу создал (проверила в б/д)
теперь буду пытаться вносить данные
Большое спасибо | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 11:52)
| | > (проверила в б/д)
странно...что ошибка(краснея)...но раз создал....тогда ладно
а как вы проверили? у вас есть phpmyadmin? | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 11:56)
| | P@Sol,
да, phpmyadmin есть | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 11:59)
| | так там создание таблиц на много проще происходит...их можно потом редактировать и удалять:) | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 12:01)
| | P@Sol ,
скорее всего так и есть, но
я плохо знакома с phpmyadmin
есть возможность объяснить создание и удаление таблиц через phpmyadmin ? | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 12:40)
| | у вас нет книжки PHP 5. Практика создания web-сайтов? там было описание...
могу попробовать...написать доку | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 12:48)
| | P@Sol ,
книги нет ,может можно её найти в интернете
или >могу попробовать...написать доку
попыталась внести данные , но не получается...
использовала код из http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3453
<?php
// Устанавливаем соединение с базой данных
global $dbhost ....
include "config.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO test VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
// unset($number[13]); -в моём случаи не нужен
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "$num,";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = substr($order,0,strlen($order) - 1).")";
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
?>
...запускаю и вижу на экране
INSERT INTO users_temp VALUES (1,10 NULL ..... NULL NULL 3 0 ),
(2, 12 NULL ......NULL NULL 0 0),
(3,.......
......
error in update data - You have an error in your SQL syntax | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 13:28)
| | первое что бросаеться в галаза - это надо поменять
global $dbhost ....
include "config.php";
эти две строки местами...
а второе - VALUES (1,10 NULL ..... NULL NULL 3 0 ),
в скобке должно быть все разделено запятыми...но почему это не так...я пока не знаю | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 13:28)
| | если пройти по ссылке, которую вы дали, то там похожая проблема | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 13:54)
| | P@Sol,
что то поняла
в этой сылке говорилось о данных ,уже разделённых запятой
,а у меня вместо запятой - табуляция -теперь надо изменить -
поиск по табуляции
$number = explode(",",$line); - поиск по запятой
изменила на
1) $number = explode(" ",$line); - результат -не везде ставит запятые
2) $number = explode(/t,$line); - результат -даёт ошибку | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 14:17)
| | а "\t"? | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 14:25)
| | P@Sol,
"\t" - воспринемает в буквальном смысле ... и ни чего не происходит | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 14:32)
| | тогда я сдаюсь.... | |
|
|
|
|
|
|
|
для: P@Sol
(23.06.2005 в 14:40)
| | P@Sol,
всё правильно "\t" - работает
это я перепутала направление и написала "/t"
но всё равно пока не вставляет данные в таблицу.......просит Имя
вводить в 'имя' -как строку,теперь надо подумать как их (имена) туда
внести
уже пора уходить,смогу продолжить в воскресенье.....сообщу о результатах
спасибо | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 15:08)
| | присоедините файлик создания таблицы и тот которым вы пытаетесь вставлять данные | |
|
|
|
|
 3.4 Кб |
|
|
для: P@Sol
(23.06.2005 в 15:13)
| | Имеются 3 файла (не знаю как прикрепить их все вмести) - посылаю идин за другим
1) файл содаёт таблицу | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 15:49)
| | файл 2
вставляет данные | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 15:52)
| | файл 3
сами данные
спасибо | |
|
|
|
|
|
|
|
для: Elina
(23.06.2005 в 15:55)
| | Доброе утро,
напоминаю ...... что всё ещё пытаюсь загрузить данные из файла в б/д
буду сообщать о продвижениях | |
|
|
|
|
|
|
|
для: Elina
(26.06.2005 в 10:33)
| | не могу понять в чём ошибка
вношу
INSERT INTO nuke_users_tet VALUES (1,...''', '', '', '', ........., 3, '', 'NULL', 'NULL', '0 ');
получаю
error in update data - Column count doesn't match value count at row 1 | |
|
|
|
|
|
|
|
для: Elina
(26.06.2005 в 11:44)
| | Это значит, что число полей в таблице nuke_users_tet и списке после ключевого слова VALUES не совпадают. | |
|
|
|
|
|
|
|
для: cheops
(26.06.2005 в 13:00)
| | исправила .... работает
спасибо | |
|
|
|