Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как удалить одинаковый текст в доп поле?

Как удалить одинаковый текст в доп поле?


     30.11.2019    Удалить дубли, доп поле    Общие вопросы, MySQL    713

вопрос
Всем доброго времени суток. Подскажите пожалуйста знающие как удалить дублирующий текст в доп поле?
Есть доп поле перекрестные ссылки: modeli
В нем значения такого вида: George Clooney, Quentin Tarantino, Salma Hayek, Quentin Tarantino, Salma Hayek
Как создать sql запрос на удаление дублирующего содержимого, в данном примере повторяется: Quentin Tarantino, Salma Hayek.
Заранее спасибо за помощи.

Ответил: DevilOper


Запросом не знаю. Вариант такой. Создаем доп поле с латинским названием dubble_del, тип переключатель да/нет. По умолчанию нет.
Открываем engine/modules/show.full.php и ищем в нем код

$tpl->set( '{full-story}', $row['full_story'] );

Ниже вставляем код

if ( $xfieldsdata['dubble_del'] == 0 ) {
    $xfieldz = xfieldsdataload( $row['xfields'] );
	$modeli = explode(", ", $xfieldz['modeli']);
	$clean_modeli = array_unique($modeli);
	$xfieldz['modeli'] = implode(", ", $clean_modeli);
	$xfieldz['dubble_del'] = 1;
	foreach($xfieldz as $key => &$value)
	  $arr_field[] = $key . "|" . str_replace('|', '|', $value);
	$xfieldz = implode("||", $arr_field);
	unset($arr_field);
	$xfieldz = $db->safesql($xfieldz);
	$db->query( "UPDATE " . PREFIX . "_post SET xfields='$xfieldz' WHERE id='{$row['id']}'");
    unset($xfieldz);
}

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

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

ushkom
Юзер

ushkom - 2 декабря 2019 14:55 -

Спасибо Вам большое за помощь. А при добавлении новых новостей этот скрипт автоматом будет убирать дубли?

DevilOper
Юзер

DevilOper - 2 декабря 2019 20:25 -

ushkom,
Если его оставить он будет убирать дубли и дальше. Но тогда раз в день делайте вручную пересохранение новостей. Еслиб доп поле не было с гиперссылками было бы проще. Я так пологаю дубли вставляет туда парсер, поправьте его, чтоб одинаковые значения не вставлял, ибо так и будете мучатся.

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

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

наверх