Обновление новостей DLE через MySQL

Тема в разделе "Базы данных", создана пользователем boxsterino, 17 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. boxsterino

    boxsterino Создатель

    Регистр.:
    4 фев 2008
    Сообщения:
    41
    Симпатии:
    3
    Здравствуйте, поставил модуль редиректа на DLE для того, чтобы уменьшить количество внешних ссылок в новостях. Хотя многие знают, что внешние ссылки обрабатываются уже в новодобавленных новостях после установки редиректа или обновлённых (отредактированных). То бишь достаточно нажать "Редактировать" и тут же "Сохранить", не внося изменений, как внешняя ссылка обработается и обработается в редиректную. Это реально сделать допустим в 100 новостях, но если до установки модуля было написаны тысячи новостей - сами понимаете, это уже невозможно...

    В связи с этим вопрос: существует какой-нибудь MySQL-запрос для обновление новостей в DLE, чтобы можно было "обновить" старые новости? Может оператор UPDATE или какой-нибудь другой, даже и не знаю...

    Заранее благодарю!
     
  2. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.377
    если ты знаеш точно что и чем менять то
    UPDATE префикситвоей базы_post SET full_story = REPLACE(full_story, 'чтоменять', 'чемменять'), short_story = REPLACE(short_story, 'чтоменять', 'чемменять');
    это произведет замену в короткой и полной новостях
    естественно не забудь сделать бекап таблици пост или базы полность.
     
  3. localhost:80

    localhost:80 Постоялец

    Регистр.:
    4 дек 2008
    Сообщения:
    102
    Симпатии:
    15
    одним запросом mysql вряд ли такое возможно, скорее всего потребуется скрипт обработки с регулярными выражениями с последовательным чтением из базы, обработкой данных, записью наподобие того механизма что стоит в обработчике добавления новостей в DLE. кстати движок платный, так почему бы его разработчику не добавить такую полезную функцию, а может уже добавил ...
     
  4. alfaexpert

    alfaexpert

    Регистр.:
    23 июл 2008
    Сообщения:
    183
    Симпатии:
    27
    Встроенных средств в ДЛЕ нет для таких целей. Нужно всего лишь написать простой скрипт, который читает всю базу прогоняет через систему простановки ссылок и сохраняет обратно в базу.

    Такой скрипт обычный программист сделает за час, ну максимум два часа провозиться с этим можно
     
  5. jcrush

    jcrush

    Регистр.:
    10 ноя 2006
    Сообщения:
    692
    Симпатии:
    55
    UPDATE `dle_post` SET `full_story`=REPLACE(`full_story`, 'http://', 'http://адрес сайта/go.php?url=');
     
  6. trofimov888

    trofimov888 Писатель

    Регистр.:
    4 окт 2008
    Сообщения:
    9
    Симпатии:
    0
    Трудно научится MySQL. Кто-нибудь знает видеокурсы где можно скачать
     
  7. ortega3000

    ortega3000 Создатель

    Регистр.:
    21 мар 2008
    Сообщения:
    14
    Симпатии:
    7
    Это пойдет в том случае, если в оригинальной ссылке нет символов ? и &. А иначе ссылка будет битой. А чтобы не была битой, нужно делать урленкод для ссылок, чтобы все не буквенно-цифровые символы преобразовывались вот в такую штуку: %XX, где ХХ - шестнадцатиричное представление кода символа.
     
Статус темы:
Закрыта.