Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как скопировать данные из shortstory в fulstory в БД?

Как скопировать данные из shortstory в fulstory в БД?


     16.06.2016    Шаблоны (TPL), MySQL    1861

вопрос
Ситуация следующая: много лет назад в начале использования DLE из-за неправильного понимания работы движка и соответственно неправильного оформления на сайте, была допущена ошибка в реализации вывода новостей на сайте. А именно, в fullstory.tpl был добавлен вывод краткого описания - {short-story}, соответственно так и писались новости.

Теперь же нужно отказаться от этой "порочной" практики и сделать всё нормально: {short-story} для тизера, {full-story} для полной статьи. Но если убрать сейчас {short-story} из fullstory.tpl, то пропадёт первая часть у всех статей. На сайте больше 30К статей и править вручную - дело неблагодарное.

Поэтому вопрос, можно ли в БД скопировать данные из short_story и вставить их в начало (т.е. перед данными, которые там уже есть) full_story?

Ответа пока нет


3 комментария

ПафНутиЙ
Админ

ПафНутиЙ - 16 июня 2016 21:25 -

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


// С ID какой новости начинаем
$from = 0;

// На каком ID новости заканчиваем
$to = 1000;

// Разделитель краткой и полной новости
$separator = '<br>';

$news = $db->super_query('SELECT id, short_story, full_story FROM ' . PREFIX . '_posts WHERE id > ' . $from . ' AND id < ' . $to);

foreach ($news as $newsItem) {
    $itemFullStory = $newsItem['short_story'] . $separator . $newsItem['full_story'];
    $db->query('UPDATE' . PREFIX . '_posts SET full_story = ' . $newsItem['short_story'] . ' WHERE id = ' $newsItem['id']);
}

Каков вопрос - таков и ответ. Просто помните об этом.

nowheremany
Эксперт

nowheremany - 16 июня 2016 21:49 -

UPDATE dle_posts SET full_story = CONCAT(short_story,'<br>',full_story)

Благодарность принимаю тут Связь

LazyDev
PHP-developer

LazyDev - 16 июня 2016 21:50 -

UPDATE dle_post SET  `full_story` = CONCAT(  `short_story` ,  ' ',  `full_story` );

Через php my admin сделайте запрос, предварительно изменив префикс dle на свой если вы его меняли.

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх