Как импортировать данные в Mysql из txt Dle

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Привет народ и снова я со своими глупыми вопросами:)
Перейдём к делу есть txt файл в котором есть такие записи:
"kinopoisk"; "title"; "iframe"
и к ним идет уже такое :

"395787"; "Семь жизней"; 'http://test.ru/iframe/d85f719e/
Вопрос вот в чём можно ли как-то массово загнать эти данные в бд????
Если да то как??
p/s kinopoisk и iframe нужно загнать в доп поля.
Или все таки делать это ручками и только ними?????
Заранее спасибо за ответ и за терпение к моим вопросам:)
 

MaximuS

Новичок
Регистрация
8 Мар 2017
Сообщения
3
Реакции
0
Баллы
3
Конечно можно. На том же PHP.
Другое дело, что для тебя будет быстрее: найти кто этот скриптик напишет / написать самому, или же вбить ручками.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Конечно можно. На том же PHP.
Другое дело, что для тебя будет быстрее: найти кто этот скриптик напишет / написать самому, или же вбить ручками.
Ясно, Ну да 30324 записей в ручную буду долго заталкивать:)
Ну буду тогда рыскать в поисках если можно.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Отыскал такое чудо в просторах но как прикрутить к Дле хз:-(

Код:
риптаPHP

<?php
/*
*
*  Name   : CSV->MySQL Importer
*  Ver    : 2.2
*  Author : Dmitriy Ilichev
*  WebSite: https://dmitriyilichev.com/
*
*/

setlocale (LC_ALL, 'nl_NL'); // Преобразуем каракули в кириллицу

/*
*
*  Настройки
*
*/

$options = array(
    'enable'        => true, // Скрипт работает только если значение TRUE
    /* Настройки CSV */
    'filename'      => 'import.csv', // Имя файла CSV. Находиться должен в одной папке со скриптом
    'delimiter'     => ';', // Какой разделитель используется
    /* Настройки подключения к БД */
    'db_server'     => 'localhost', // Сервер БД
    'db_user'       => 'root', // Имя пользователя
    'db_password'   => '', // Пароль
    'db_base'       => 'data' // Имя базы данных

    );

if(!$options['enable']) die('Скрипт отключен, дальнейшая обработка данных невозможна!');

/*
*
*  Функции скрипта
*
*/

// Основная функция, из импортируемого файла выбираем данные в массив
// !Во время первой итерации значения первой строки будут являться ключами ассоциативного массива!
 
function csv_to_array($filename='') {
    if(!file_exists($filename) || !is_readable($filename)){
        return FALSE;
    }
    global $options;
    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE) {
        while (($row = fgetcsv($handle, 1000, $options['delimiter'])) !== FALSE) {
            if(!$header)
                $header = $row;
            else
                $data[] = array_combine($header, $row);
        }
        fclose($handle);
    }
    return $data;
}
 
// Используется, если необходимо убрать ВСЕ (!!!) пробелы из строки
// Например цена в виде Х ХХХ, а в базе нужно ХХХХ
 
function space_off($str) {
    if(!empty($str)) {
        return str_replace(" ", "", $str);
    }
    else {
        return FALSE;
    }
}
 
// Просто функция транслитизации, Заменяем кириллицу латиницей, вместо пробела ставим нижнее подчеркивание
// Удобно, если необходимо из названия сделать URL
 
function translit($str) {
    $rus = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
    $lat = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'Gh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'Ch', 'Sh', 'Sch', 'Y', 'Y', 'Y', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'e', 'gh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'y', 'y', 'y', 'e', 'yu', 'ya', '_');
    return str_replace($rus, $lat, $str);
}
 
/*
*
*  / Функции скрипта
*
*  Подключаемся к Базе Данных
*
*/
 
$link = mysql_connect($options['db_server'], $options['db_user'], $options['db_password']);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
 
// Указываем, что общаемся с БД только в UTF-8
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
 
// Выбираем интересующую нас Базу
 
$db_selected = mysql_select_db($options['db_base'], $link);
if (!$db_selected) {
    die ('Не удалось выбрать базу db_data: ' . mysql_error());
}
 
// Отключаем индексацию таблицы, для максимального быстродействия

mysql_query("ALTER TABLE `".$options['db_base']."` DISABLE KEYS");

foreach (csv_to_array($options['filename']) as $val) {
 
    // Тут собственно делаем запросы в соответствии с задачей

}

// Включаем индексацию таблицы

mysql_query("ALTER TABLE `".$options['db_base']."` ENABLE KEYS");
 
// Закрываем соединение с БД
 
mysql_close($link);
 
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/*
*
*  Name   : CSV->MySQL Importer
*  Ver    : 2.2
*  Author : Dmitriy Ilichev
*  WebSite: https://dmitriyilichev.com/
*
*/
 
setlocale (LC_ALL, 'nl_NL'); // Преобразуем каракули в кириллицу
 
/*
*
*  Настройки
*
*/
 
$options = array(
    'enable'        => true, // Скрипт работает только если значение TRUE
    /* Настройки CSV */
    'filename'      => 'import.csv', // Имя файла CSV. Находиться должен в одной папке со скриптом
    'delimiter'     => ';', // Какой разделитель используется
    /* Настройки подключения к БД */
    'db_server'     => 'localhost', // Сервер БД
    'db_user'       => 'root', // Имя пользователя
    'db_password'   => '', // Пароль
    'db_base'       => 'data' // Имя базы данных
 
    );
 
if(!$options['enable']) die('Скрипт отключен, дальнейшая обработка данных невозможна!');
 
/*
*
*  Функции скрипта
*
*/
 
// Основная функция, из импортируемого файла выбираем данные в массив
// !Во время первой итерации значения первой строки будут являться ключами ассоциативного массива!
 
function csv_to_array($filename='') {
    if(!file_exists($filename) || !is_readable($filename)){
        return FALSE;
    }
    global $options;
    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE) {
        while (($row = fgetcsv($handle, 1000, $options['delimiter'])) !== FALSE) {
            if(!$header)
                $header = $row;
            else
                $data[] = array_combine($header, $row);
        }
        fclose($handle);
    }
    return $data;
}
 
// Используется, если необходимо убрать ВСЕ (!!!) пробелы из строки
// Например цена в виде Х ХХХ, а в базе нужно ХХХХ
 
function space_off($str) {
    if(!empty($str)) {
        return str_replace(" ", "", $str);
    }
    else {
        return FALSE;
    }
}
 
// Просто функция транслитизации, Заменяем кириллицу латиницей, вместо пробела ставим нижнее подчеркивание
// Удобно, если необходимо из названия сделать URL
 
function translit($str) {
    $rus = array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
    $lat = array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'Gh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'Ch', 'Sh', 'Sch', 'Y', 'Y', 'Y', 'E', 'Yu', 'Ya', 'a', 'b', 'v', 'g', 'd', 'e', 'e', 'gh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'y', 'y', 'y', 'e', 'yu', 'ya', '_');
    return str_replace($rus, $lat, $str);
}
 
/*
*
*  / Функции скрипта
*
*  Подключаемся к Базе Данных
*
*/
 
$link = mysql_connect($options['db_server'], $options['db_user'], $options['db_password']);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
 
// Указываем, что общаемся с БД только в UTF-8
 
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET SESSION collation_connection = 'utf8_general_ci'");
 
// Выбираем интересующую нас Базу
 
$db_selected = mysql_select_db($options['db_base'], $link);
if (!$db_selected) {
    die ('Не удалось выбрать базу db_data: ' . mysql_error());
}
 
// Отключаем индексацию таблицы, для максимального быстродействия
 
mysql_query("ALTER TABLE `".$options['db_base']."` DISABLE KEYS");
 
foreach (csv_to_array($options['filename']) as $val) {
 
    // Тут собственно делаем запросы в соответствии с задачей
 
}
 
// Включаем индексацию таблицы
 
mysql_query("ALTER TABLE `".$options['db_base']."` ENABLE KEYS");
 
// Закрываем соединение с БД
 
mysql_close($link);
 
?>
 

Den

Приватовец
Приватовец
VIP
Прошёл марафон
Регистрация
23 Фев 2017
Сообщения
1.074
Реакции
549
Баллы
113
@igrovik, твой список легко превратить в CSV, а его легко импортировать в базу через PhpMyAdmin
 

Лукорез

Новичок
Регистрация
24 Фев 2017
Сообщения
214
Реакции
132
Баллы
43
Обратите внимание, что если вы хотите заключить сделку с этим пользователем, он заблокирован
Экспортируй базу, открой текстовым редактором и скопируй свои строки в нужную таблицу. Сохрани и импортируй обратно.
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
201
Реакции
83
Баллы
28
Экспортируй базу, открой текстовым редактором и скопируй свои строки в нужную таблицу. Сохрани и импортируй обратно.
Не подходит 30324 записи добавлять нереально.Так как вначале нужно будет создать 30324 новостей в админке, а потом лезть в базу, тогда сразу уже в админке все проделывать:)
 
Сверху Снизу