0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 8512 Просмотров

Добрый день. Есть ли мамбот, который будет сканить все материалы на сайте и искать одинаковые названия, и потом удалять дубликаты? Если нету - сколько это может стоить что бы заказать кому-то написать?

Ап. Что никто не знает?
*

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
Поискал в каталоге - ничего похожего не нашёл.


Можно попытаться выявить дублирующиеся записи SQL-запросом к таблице "jos_content".

Например, увидеть количество статей с одинаковыми заголовками можно с помощью такого запроса в phpMyAdmin:
Код
SELECT count( * ) , title
FROM `jos_content`
GROUP BY title

Удалять лишние придётся вручную из админки.
« Последнее редактирование: 26.09.2007, 21:07:44 от Greycat »
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512

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

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
Впринципе можно что-нибудь придумать, но на вскидку написать не смогу, надо пробовать.

А сколько всего у вас статей, категорий и разделов?
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512

Ежедневно добавляется около 50 статей. Где-то 10 категорию и 7 разделов.
*

Greycat

  • Захожу иногда
  • 298
  • 64 / 0
Итак, вот способ для поиска и удаления дубликатов статей с помощью SQL запросов к базе данных.

В данном примере предполагается, что дубликатами считаются записи в таблице `jos_content`, имеющие одинаковые значения в поле `title`.

Запросы проверены с помощью phpMyAdmin на 1.0.12LE (без дополнительных расширений). MySQL = 5.0.41-community-nt. Тем не менее, обязательно проверьте эти запросы на тестовой копии базы данных. Перед применением их на рабочей базе не забудьте предварительно создать страховую копию БД.

Последовательность действий следующая:

1. Создание временной таблицы для хранения в ней id уникальных записей.
2. Поиск в таблице контента уникальных записей (не являющихся дубликатами) и запись их id во временную таблицу.
3. Удаление из таблицы контента свех строк с id не соответствующими ранее найденным уникальным записям, хранящимся во временной таблице.
4. Удаление временной таблицы.

1. Создание временной таблицы (под именем `temp1`) с одним полем, для хранения id:
(Прежде, чем выполнять запрос, убедитесь, что таблицы с именем `temp1` в вашей базе данных не существует.)

Код
CREATE TABLE IF NOT EXISTS `temp1` ( `id` INT(11) )

--------------------------

2. Копирование во временную таблицу id всех оригинальных записей (из числа дубликатов будут выбраны записи с наименьшим значением id, т.е. созданные самыми первыми). Предполагается, что дублирующимися являются записи с одинаковыми значениями в поле `title`.

Код
INSERT INTO `temp1` SELECT MIN(`id`) FROM `jos_content` GROUP BY `title`

(Если нужно оставить записи созданные не первыми, а самыми последними, то замените выражение MIN(`id`) на MAX(`id`)).
--------------------------

3. Удаление из таблицы контента строк с id, не записанными во временную таблицу (т.е. не уникальных).

Код
DELETE FROM `jos_content` WHERE `id` NOT IN ( SELECT `id` FROM `temp1` )

--------------------------

4. Удаление временной таблицы:

Код
DROP TABLE `temp1`
« Последнее редактирование: 29.09.2007, 20:58:06 от Greycat »
Я.д.=41001239962471  |  WMR=R271925495206  |  WMZ=Z144922023512

*

sanek3y

  • Новичок
  • 2
  • 0 / 0
Greycat, спасибо все получилось!
На сайте 40  тыс. страниц контента new-best.net теперь благодаря тебе он стал легче на 2460 дублей. В ручную месяц бы сидел удалял.
*

Sergeych

  • Захожу иногда
  • 161
  • 25 / 0
Для снятия материалов (дубликатов) с публикации (вместо удаления)

изменить строчку
Код
DELETE FROM `jos_content` WHERE `id` NOT IN ( SELECT `id` FROM `temp1` )
на
Код
UPDATE `jos_content` SET state=0 WHERE `id` NOT IN ( SELECT `id` FROM `temp1` )
« Последнее редактирование: 09.01.2021, 23:45:53 от Sergeych »
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Для снятия материалов (дубликатов) с публикации (вместо удаления)

изменить строчку
Код
DELETE FROM `jos_content` WHERE `id` NOT IN ( SELECT `id` FROM `temp1` )
на
Код
UPDATE `jos_content` SET state=0 WHERE `id` NOT IN ( SELECT `id` FROM `temp1` )
Охренеть актуальность!
*

Sergeych

  • Захожу иногда
  • 161
  • 25 / 0
Охренеть актуальность!
Сам офигел, когда на даты посмотел... но вот мне тема помогла, вдруг кому ещё поможет лет через 10 )))
j1.0 ... ностальгия  ::)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мамбот "Одобрено"

Автор fs-p

Ответов: 16
Просмотров: 8502
Последний ответ 03.05.2013, 03:15:17
от gessle
Как удалить слово из строки поиска

Автор Olegs

Ответов: 11
Просмотров: 13655
Последний ответ 06.08.2012, 08:59:21
от llektor
Мамбот DynamicImageFancyZoom

Автор beliyadm

Ответов: 186
Просмотров: 60568
Последний ответ 12.02.2010, 13:05:16
от pixel2
Отключить мамбот на определенной странице

Автор Arina

Ответов: 11
Просмотров: 2926
Последний ответ 20.11.2009, 14:52:39
от adm1n
После удаления CB и всех его придатков, не появляется содержимое модуля авторизации

Автор Sevenor

Ответов: 2
Просмотров: 1992
Последний ответ 02.09.2009, 18:33:07
от Neboqitel