Skip to content

Instantly share code, notes, and snippets.

@mol4anovma
Created February 10, 2017 11:25
Show Gist options
  • Save mol4anovma/463f58db7641e6f53510a0ebf8385e36 to your computer and use it in GitHub Desktop.
Save mol4anovma/463f58db7641e6f53510a0ebf8385e36 to your computer and use it in GitHub Desktop.
Вопрос 4
<?php
//Принимаем на веру, что есть класс работы с БД $SQL, где:
//getOne() – получение первого единичного значения из запроса
//query() – выполнение запроса к базе
//Получение массива данных из файла дампа
$data = file(__DIR__ . "/dump.txt", FILE_IGNORE_NEW_LINES);
//Можно получить текущее максимальное значение ID из базы. А можно принять на веру, что это 1.
$verim = true;
if (!$verim) {
$max_id = $SQL->getOne("SELECT MAX(id) FROM section");
$max_id = (empty($max_id)) ? 1 : $max_id;
} else {
$max_id = 1;
}
$uid_list = array_map(function ($item) {
return substr($item, 0, strpos($item, "#"));
}, $data);
foreach ($data AS $key => $row) {
$result = explode("#", $row);
$uid = trim($result[0]);
$title = trim($result[1]);
$sort = (int)trim($result[3]);
$pid = $max_id + array_search(trim($result[2]), $uid_list);
$SQL->query("INSERT INTO section (`uid`, `pid`, `title`, `sort`)
VALUES ('" . $uid . "', " . $pid . ", '" . $title . "', " . $sort . ")");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment