вопрос
Здраствуйте уважаемые гуру, помогите пожалуйста избавить сайт от дублей новостей.
Описание
На сайт (dle 10.1) добавляются новости минуя админпанель, тоесть через скрипт который импортирует запросом по типу:
Но естественно предусмотрели проверку в этом скрипте по наличию заголовка, если есть то не импортируется.
Этого мало, надо чтоб на сайт добавлялись только уникальные статьи (проверка по заголовку) но на стороне базы.
Было сделано
Пробовал индекс уникальный добавить запросом,
по гайду
Но безуспешно, поскольку на сайт как прежде с админки добавить можно новости с одинаковыми заголовками.
Что требуется
Добавление на сайт новостей чтоб возможно было только с уникальными заголовками.
Решение очень важно чтоб было со стороны базы данных!
Буду рад любому толковому решению проблемы!)
Описание
На сайт (dle 10.1) добавляются новости минуя админпанель, тоесть через скрипт который импортирует запросом по типу:
INSERT INTO `dle_post` (`таблицу...`) VALUES (`значения...`)
Но естественно предусмотрели проверку в этом скрипте по наличию заголовка, если есть то не импортируется.
... if(!empty($_POST['short_story']) && !empty($_POST['title'])) {
$inbase = @mysql_num_rows(mysql_query("SELECT * FROM dle_post WHERE title='".$_POST['title']."'"));
if($inbase > 0)
echo 'no import';
else { ... запрос импорта данных
Этого мало, надо чтоб на сайт добавлялись только уникальные статьи (проверка по заголовку) но на стороне базы.
Было сделано
Пробовал индекс уникальный добавить запросом,
ALTER TABLE `dle_post`
ADD UNIQUE INDEX `ix_phone` (`title`)
по гайду
Внимание! У вас нет прав для просмотра скрытого текста.
Но безуспешно, поскольку на сайт как прежде с админки добавить можно новости с одинаковыми заголовками.
Что требуется
Добавление на сайт новостей чтоб возможно было только с уникальными заголовками.
Решение очень важно чтоб было со стороны базы данных!
Буду рад любому толковому решению проблемы!)
Решение:
1. В phpmyadmin выбираем базу, выбираем dle_post, Выполнить SQL
2. Сначало удалим дубликаты заголовков новостей запросом (вместо одинаковых оставит 1 уник)
3. Подождали выполнение, все, теперь база без дублей и можно назначить U (уникальный) для title
"phpmyadmin - имя-базы - dle_post - Структура - отметить title - справо нажать на U уникальный"
Предпологаю это можно альернативно сделать просто запросом
1. В phpmyadmin выбираем базу, выбираем dle_post, Выполнить SQL
2. Сначало удалим дубликаты заголовков новостей запросом (вместо одинаковых оставит 1 уник)
ALTER IGNORE TABLE dle_post ADD UNIQUE INDEX titleindex (title);
ALTER TABLE dle_post DROP INDEX titleindex;
3. Подождали выполнение, все, теперь база без дублей и можно назначить U (уникальный) для title
"phpmyadmin - имя-базы - dle_post - Структура - отметить title - справо нажать на U уникальный"
Предпологаю это можно альернативно сделать просто запросом
ALTER TABLE `dle_post`
ADD UNIQUE INDEX `title` (`title`)