Sigmo#ID
Спасибо вам огромное! Просто и эффективно! Теперь я быстро переделаю всю таблицу...
Удачи вам и всего самого!
Открою вам одну тайну: у людей разный склад ума… лично я на 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');
Вот, собственно и всё...
Пробовал - не получилось... не знаю, как правильно называется, но какие-то связи теряются между таблицами... не появляются комментарии в постах, хотя в БД они есть...
Тут такое дело... в общем благодаря Вячеславу (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
Спасибо за помощь! Попробовал ваш вариант, тоже ошибка... на этот раз такая:
#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
Спасибо за ответ! И спасибо, что напомнили про версию движка, а то совсем забыл... утилит никаких не нашёл, потому и пытаюсь руками ... Очень надеялся на TextKit, но он, как я писал выше, перенес только тексты...
дани мапов, Rokkkin, спасибо ребята, попробую ваши рецепты...---------- Добавлено 20.11.2015 в 21:38 ----------увы, не сработало...Затронуто 0 строк. (Запрос занял 0.0914 сек.)