krist

Рейтинг
63
Регистрация
13.05.2008

Sigmo#ID

Спасибо вам огромное! Просто и эффективно! Теперь я быстро переделаю всю таблицу...

Удачи вам и всего самого!

SeVlad:
И как при таких знаниях можно работать с БД? 😮
Заплати лучше спецу немного денег. Не за замену/размножение строк, а за конечный результат. Ибо если уже на этом уровне нет знаний, то дальше можно наворотить такого..

Открою вам одну тайну: у людей разный склад ума… лично я на 146% гуманитарий и всё что связано с точными науками я с детства очень тяжело усваиваю. Я уже не молод, но до сих пор не понимаю, как железные корабли не тонут, самолёты не падают, а уж как можно было додуматься до того, что напаяно на любой плате любого прибора — вапче не представляю. Примерно также и с программированием… но я не умственно отсталый и если мне показать пример — могу его воспроизвести и даже кое-что подправить. Мануалов, действительно, море… в том и проблема, чтобы нарыть нужный пример, можно неделю потратить и не факт, что найдёшь… а вот человек взял и предложил решение — раз и всё готово без всяких формул, мануалов, столбцов и их объединений. Просто он знает, КАК это сделать и поделился этим знанием со всеми нами. А я со своим неведением и вы со своими знаниями в данном случае оказались в одинаковом положении — мы оба приобрели.

На счет платить… ну в этом вопросе тоже все разные: кто-то вызывает мастера, чтобы гвоздь вбить в стену, я же предпочитаю всё делать сам и интернет позволяет найти ответы на любые вопросы: и как стены править, и пол залить, и мебель сделать... С сайтом тоже самое: хочу делать его сам. Естественно, с помощью добрых людей, но всё же своими руками. Чтобы не натворить бед в этом деле, главное, точно понимать, что нужно сделать, а как это сделать — всегда можно спросить и найдутся люди, которые откликнутся и подскажут. И всем вам спасибо за это! Удачи!

SeVlad, написал тут ибо не знал куда писать... надеюсь, модераторы перенесут в нужный раздел...

Спасибо вам за советы... попробую разобраться... никогда ничего подобного не делал... надеюсь получится...

Увы, но самостоятельно разобраться у меня не вышло...

Вы подробно расписали, что нужно сделать, но я не знаю как это сделать... :(

У меня сейчас под рукой ЛибреОфис (с его Таблицей Calc, насколько я понимаю типа аналог Экселя).

1) Я понимаю, что нужно в первой колонке создать 1000 строк со скобкой (, но я не знаю как это сделать...

2) Я также понимаю, что во второй колонке как-то нужно создать 1000 строк с возрастающим на единицу числом, но также не знаю как это делается...

3) Понятно, что в третьей колонке, аналогично первой, нужно разместить остальные данные...

4) Ну и в заключение - взять и всё как-то объединить... вы указали, что в помощь Функция СONCATENATE() но без выполнения первых трёх пунктов объединять нечего...

Уж извините, но опыта в подобных вещах у меня полный ноль... только тексты и умею набирать - не более того...

Спасибо! Заработал редирект...

Samail, спасибо за помощь... попробовал оба варианта и в том, и другом случае теперь после домена выходит две косые - //

Всем привет!

Ищу решение массового 301-редиректа в связи с переносом сайта на другой движок. Нашел вот такую статью http://www.ahp-net.ru/cmschange.ahp сделал всё, как там написано, но где-то в скрипте ошибка…

Автор статьи на связь не выходит… может быть здесь кто-нибудь поможет выявить и исправить ошибку...

вот сам redirect.php

<?php

// Какой URL у нас запросили?

$rq_uri = $_SERVER['REQUEST_URI'];

// Считываем файл как массив строк

$a_src = file('./redirect.csv');

// Разбираем каждую строку как элемент нового массива:

// в нем старый URL становится индексом, а новый – значением

$a_rdr = array();

foreach ($a_src as $val) {

// Разбивка по разделителю

$a_0 = explode('|', $val);

// Добавление в массив с попутной зачисткой пробелов

$a_rdr[trim($a_0[0])] = trim($a_0[1]);

}

// После этого цикла у нас готова таблица редиректов

// Массив строк файла уничтожаем – он больше не нужен

unset($a_src);

// Теперь осталось проверить, есть ли запрошенный URL среди старых

// Если есть, то перенаправляем на соответствующий новый и на этом завершаем работу

if (!empty($a_rdr[$rq_uri])) {

header($_SERVER['SERVER_PROTOCOL']. ' 301 Moved Permanently');

header('Location: http://'.$_SERVER['HTTP_HOST'].$a_rdr[$rq_uri]);

exit();

} else {

// А если запрошенного URL среди старых не нашлось,

// уничтожаем таблицу, чтоб не занимала память и пусть index.php работает дальше

unset($a_rdr);

}

?>

redirect.csv - список старых|новых урлов сделан по следующей схеме:

/2015/01/25/postname/|/categoria/podcategoria/ID-postname.html

В результате, когда ввожу старый урл в браузере, он меняется на новый, но после домена исчезает косая черта - /… т.*е. новый урл отображается так:

mysite.rucategoria/podcategoria/ID-postname.html

а нужно:

mysite.ru/categoria/podcategoria/ID-postname.html

redirect.php и redirect.csv помещены в корень сайта...

В index.php добавлена строка:

include('./redirect.php');

Вот, собственно и всё...

Brand from Amber:
Ну и сделай по аналогии, в чём проблема-то:

Почитай какое поле за что отвечает (или создай 2-а одинаковых поста на разных движках и сравни) и вперёд.

Пробовал - не получилось... не знаю, как правильно называется, но какие-то связи теряются между таблицами... не появляются комментарии в постах, хотя в БД они есть...

dma84:
Автору не помешало бы предоставить структуру обеих таблиц, а не MySQL-запросы

Проще импортнуть таблицу из ВП, а потом поменять названия столбцов, их порядок и переименовать таблицу. Но нужно смотреть на типы столбцов, используемых в DLE.

Тут такое дело... в общем благодаря Вячеславу (Chukcha ) таблица комментариев загрузилась в БД, но... не заработала на сайте... Скорее всего с ней всё в порядке (я по крайней мере очень на это надеюсь), поскольку выяснилось, что TextKit при переносе постов не скопировал ID-новостей, а назначил им новые... сразу это было не видно, поскольку даты, соответственно хронология и вывод постов остались такими же, как и в оригинале...

Так что теперь нужно ту же процедуру произвести с таблицей постов...

Касательно структуры таблиц, то они вот такие:

--

-- Структура таблицы `wp_posts`

--

CREATE TABLE IF NOT EXISTS `wp_posts` (

`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`post_author` bigint(20) NOT NULL DEFAULT '0',

`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_content` longtext NOT NULL,

`post_title` text NOT NULL,

`post_category` int(4) NOT NULL DEFAULT '0',

`post_excerpt` text NOT NULL,

`post_status` enum('publish','draft','private','static','object','attachment','inherit','future') NOT NULL DEFAULT 'publish',

`comment_status` enum('open','closed','registered_only') NOT NULL DEFAULT 'open',

`ping_status` enum('open','closed') NOT NULL DEFAULT 'open',

`post_password` varchar(20) NOT NULL DEFAULT '',

`post_name` varchar(200) NOT NULL DEFAULT '',

`to_ping` text NOT NULL,

`pinged` text NOT NULL,

`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_content_filtered` text NOT NULL,

`post_parent` bigint(20) NOT NULL DEFAULT '0',

`guid` varchar(255) NOT NULL DEFAULT '',

`menu_order` int(11) NOT NULL DEFAULT '0',

`post_type` varchar(20) NOT NULL DEFAULT 'post',

`post_mime_type` varchar(100) NOT NULL DEFAULT '',

`comment_count` bigint(20) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `post_name` (`post_name`),

KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),

FULLTEXT KEY `post_related` (`post_name`,`post_content`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1322 ;

--

-- Дамп данных таблицы `wp_posts`

--

INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES

И вот во что нужно превратить:

--

-- Структура таблицы `dle_post`

--

CREATE TABLE IF NOT EXISTS `dle_post` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`autor` varchar(40) NOT NULL DEFAULT '',

`date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',

`short_story` text NOT NULL,

`full_story` text NOT NULL,

`xfields` text NOT NULL,

`title` varchar(255) NOT NULL DEFAULT '',

`descr` varchar(200) NOT NULL DEFAULT '',

`keywords` text NOT NULL,

`category` varchar(200) NOT NULL DEFAULT '0',

`alt_name` varchar(200) NOT NULL DEFAULT '',

`comm_num` smallint(5) unsigned NOT NULL DEFAULT '0',

`allow_comm` tinyint(1) NOT NULL DEFAULT '1',

`allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',

`approve` tinyint(1) NOT NULL DEFAULT '0',

`fixed` tinyint(1) NOT NULL DEFAULT '0',

`allow_br` tinyint(1) NOT NULL DEFAULT '1',

`symbol` varchar(3) NOT NULL DEFAULT '',

`tags` varchar(255) NOT NULL DEFAULT '',

`metatitle` varchar(255) NOT NULL DEFAULT '',

PRIMARY KEY (`id`),

KEY `autor` (`autor`),

KEY `alt_name` (`alt_name`),

KEY `category` (`category`),

KEY `approve` (`approve`),

KEY `allow_main` (`allow_main`),

KEY `date` (`date`),

KEY `symbol` (`symbol`),

KEY `comm_num` (`comm_num`),

KEY `tags` (`tags`),

KEY `fixed` (`fixed`),

FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3949 ;

--

-- Дамп данных таблицы `dle_post`

--

INSERT INTO `dle_post` (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`) VALUES

Chukcha:
ну так..
INSERT INTO `dle_comments` (`id`, `post_id`, `autor`, `email`, `comment_author_url`, `user_id`, `ip`, `date`, `comment_date_gmt`, `text`, `comment_karma`, `approved`, `comment_agent`, `comment_type`, `parent`, `comment_subscribe`)
SELECT `comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`,
`user_id`,
`comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `comment_subscribe` FROM `wp_comments`

таблицу импортнуть wp_comments` в абзу

Спасибо за помощь! Попробовал ваш вариант, тоже ошибка... на этот раз такая:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(22, 116, 'admin', 'aaa@aaa.ru', 'http://namesite.ru', '83.167.116.98' at line 4

Muhal4:
Вся проблема в том одного соответствия столбцов мало :( вручную этого не сделать. Когда-то встречал утилиту для переноса, но там версии ДЛЕ были до 9-ки

Спасибо за ответ! И спасибо, что напомнили про версию движка, а то совсем забыл... утилит никаких не нашёл, потому и пытаюсь руками ... Очень надеялся на TextKit, но он, как я писал выше, перенес только тексты...

дани мапов, Rokkkin, спасибо ребята, попробую ваши рецепты...

---------- Добавлено 20.11.2015 в 21:38 ----------

увы, не сработало...
Затронуто 0 строк. (Запрос занял 0.0914 сек.)

Всего: 63