SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.09.2012 21:30:52

oplot
Участник
Зарегистрирован: 03.09.2012
Сообщений: 5

Разовый скрипт, для переноса данных.

Всем добрый день. Очень нужна помощь.

У меня есть текстовый файл (file.ТХТ к примеру), в котором более 2000 записей. Это просто список имен, записанных в столбик. А так же есть база данных со столбцами "pole1" "pole2" "pole3" (к примеру). Требуется создать разовый скрипт, который скушает разом все 2000 записей и распределит определенным образом.

В "pole1" он должен вносить имена из списка, в "pole2" нужно вносить число 5, а в "pole3" фразу "polzovatel".

На что хотел бы обратить внимание:
1) Скрипт разовый и в случае повторного использования меняться не будет
2) Всю жизнь работал с АкшонСкрипт (флеш), но не с mySql и php. Поэтому в них я нуб нубом.
3) Нужно закончить до завтра (2 сентября). Работу поручил препод, и как следствие облажатся вообще нельзя. Очень прошу помочь.

Неактивен

 

#2 03.09.2012 21:44:49

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Разовый скрипт, для переноса данных.

Что именно Вам непонятно?, в чем КОНКРЕТНО нужна помощь? Вы не понимаете алгоритм или?...


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 03.09.2012 21:48:04

oplot
Участник
Зарегистрирован: 03.09.2012
Сообщений: 5

Re: Разовый скрипт, для переноса данных.

Как сказано из названия раздела, он для начинающих. Я из их серии. Искал в интернете, на форумах, сайтах. Информации много, толку ноль. Тем более для человека, который впервые столкнулся с подобной задачей. Я бы хотел чтобы мне поэтапно объяснили что нужно сделать.

Неактивен

 

#4 03.09.2012 21:55:31

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Разовый скрипт, для переноса данных.

Я так понял, на php надо скрипт сделать?

подключаетесь к базе данных, если подключение непрошло, то ругань и остановка скрипта.

$lines = file('myfile.txt');

если не открылся файл, то ругань и остановка скрипта.
foreach($lines as $single_line) {
        mysql_query("insert into t(pole1,pole2,pole3) values('" . $single_line . "',5,'polzovatel')");
}

отключиться от базы данных


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 03.09.2012 22:04:50

oplot
Участник
Зарегистрирован: 03.09.2012
Сообщений: 5

Re: Разовый скрипт, для переноса данных.

<?php
$host = "localhost";
$user = "root";
$password = "";
$db = "yourdb";

$linl = mysql_connect($host, $user, $password) or die("Не могу подключиться к серверу БД");
$selectDB = mysql_select_db($db) or die("Не могу выбрать указанную БД");
mysql_query("SET NAMES 'utf8'");

$file = file("yourfile.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($file as $key=>$line)
{
  if($key%100 == 0)
     sleep(5);

  mysql_query("INSERT INTO `yourtable` (`pole1`, `pole2`, `pole3`) VALUES ('".$line."', 5, 'polzovatel')");
}
?>

Тоесть типа такого что то?

Неактивен

 

#6 03.09.2012 22:07:10

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Разовый скрипт, для переноса данных.

Похоже на то. Единственно, что зачем sleep(5)? Ну и хорошо бы проверять на ошибку результат mysql_query и $line оборачивать в mysql_real_escape_string


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 03.09.2012 22:12:49

oplot
Участник
Зарегистрирован: 03.09.2012
Сообщений: 5

Re: Разовый скрипт, для переноса данных.

if($key%100 == 0)
    sleep(5);
Это типа предохранителя. Он конечно и без паузы запишет все 2к, но мало ли.

Это я все подчерпнул, шарясь по интернетам. И это моя первая работа. Я смутно представляю даже как и куда все это засовывать. Впрочем ща в денвера кину и усе.

Отредактированно oplot (03.09.2012 22:14:45)

Неактивен

 

#8 03.09.2012 22:17:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Разовый скрипт, для переноса данных.

Первый вопрос, который Вам задаст преподаватель - насчет этого предохранителя - уберите его smile. Создаёте php-скрипт и пытаетесь через Denwer его запустить. Если что-то не получится, то на экран должны быть выданы ошибки.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 03.09.2012 22:31:02

oplot
Участник
Зарегистрирован: 03.09.2012
Сообщений: 5

Re: Разовый скрипт, для переноса данных.

Ну вроде получилось. Правда на новой таблице. В смысле новую создал. Но мне нужно данные внести в старую таблицу. Там есть уже имена. И печаль в том, что таблицы этой у меня на руках нет. А облажаться нельзя(. Вот и сижу, мучаюсь.
Насчет проверки ошибки... Опять же, таблицы нет, кодировку незнаю. Писал под юникод.

Отредактированно oplot (03.09.2012 22:32:14)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson