Перейти к публикации

Рекомендованные сообщения

Цитата

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

Здравствуйте, сам не понял как это получилось но после добавления новости новость появился с ID=0 и не отображается, в базе данных en_post и ru_post отображается данная ошибка (в PHPMyAdmin-не) а в dle_post все нормальна. В чем может быть проблема, помогите пожалуйста.

P.S. До этого я один раз редактировал одну новость в dle_post: изменил ID одной новости. Сайт http://www.hayatour.am/

Ссылка на сообщение
Поделиться на других сайтах

ID новости это уникальное значение которое автоматически генерирует именно база данных MySQL, а не скрипт DLE. DLE этих значений никогда не назначает сам. Что то вы делали с базой данных. Или какие то запросы вручную выполняли, либо использовали какие то некорректно работающие сторонние модули. Удалять это поле с данным ID нужно вручную из БД.

Ссылка на сообщение
Поделиться на других сайтах

Ручных запросов не было, стотонные модули все используются очень давно, вряд ли это из-за них, ручное изменение ID я сделал на индексе dle а проблемы на всех остальных индексах кроме dle (на сайте еще индексы ru и en). В phpmyadmin я больше нечего не магу сделать, вот скриншоты раздела en_post и его структура

 

https://dl.dropboxusercontent.com/u/107274610/en-post.PNG

https://dl.dropboxusercontent.com/u/107274610/struktur.PNG

 

Подскажите пожалуйста что можно сделать.

Ссылка на сообщение
Поделиться на других сайтах

Ваших скриншотов не видно.

13 минуты назад, samo733792 сказал:

Ручных запросов не было, стотонные модули все используются очень давно, вряд ли это из-за них

Запросов не было, сторонние модули не причем, DLE вообще никогда не генерирует ID, соответственно записать не мог. Тогда откуда он появилися? Вы верите в мистику? Я нет. Либо сторонние модули, либо ручные запросы к БД, других вариантов тут быть не может.

13 минуты назад, samo733792 сказал:

ручное изменение ID я сделал на индексе dle а проблемы на всех остальных индексах

Значит запросы все таки были? Значит когда меняли что-то сделали неправильно. Что именно я сказать не могу, т.к. в этот момент на ваш монитор не смотрел.

 

13 минуты назад, samo733792 сказал:

В phpmyadmin я больше нечего не магу сделать

Что значит не можете? Вы не можете удалить новость? Какую ошибку вы получаете? Проверяйте назначенные таблице индексы, скорее всего вы удалили нужные и важные индексы из таблицы. Список индексов для таблицы _post:

  PRIMARY KEY  (`id`),
  KEY `autor` (`autor`),
  KEY `alt_name` (`alt_name`),
  KEY `category` (`category`),
  KEY `approve` (`approve`),
  KEY `allow_main` (`allow_main`),
  KEY `date` (`date`),
  KEY `symbol` (`symbol`),
  KEY `comm_num` (`comm_num`),
  KEY `tags` (`tags`),
  KEY `fixed` (`fixed`),
  FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)

Скорее всего вы удалили из таблицы индекс PRIMARY KEY (`id`) он должен также иметь свойство auto_increment

Ссылка на сообщение
Поделиться на других сайтах

Как-то я сделал раздел ID уникальным и предупреждение в phpmyadmin исчезла, но теперь на сайте не открывается полная новость, выводится такая ошибка:

MySQL error in file: /engine/modules/show.full.php at line 978

Error Number: 1191

The Error returned was:
Can't find FULLTEXT index matching the column list

SQL query:

SELECT id, date, short_story, xfields, title, category, alt_name FROM ru_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('Араратская область В Араратской области большие реки Азат, Аракс, Веди, Раздан. Относительно небольшие реки Арацон, Хосров, Азат, Веди, (Каджару - Дарбант), и так далее. Реки имеют дренажное значение для Араратской долины. В районе поселка Ланджазат, на реке Азат построен водохранилища Зовашен.\r\nВ Араратской области есть много исторических и культурных памятников из которих древний монастырь Хор Вирап и древний Арташат. На вершине холма между верхним Арташатом и Гнавайр Древний Двин, где проводились археологические раскопоки, крепостной церковь Тапи которое (назвали по имени Геворга Марзпетуни), монастырь Авуц Тар XII века, монастырь Светой Карапет, Какаваберд (крепость Кегхи или Гехи), монастырь Агджоц.') AND id != 16 AND approve=1 AND date < '2016-06-14 15:25:17' LIMIT 5

В чем может быть сейчас проблема, раздел FULLTEXT похоже и не должен быть?

Ссылка на сообщение
Поделиться на других сайтах
58 минут назад, samo733792 сказал:

В чем может быть сейчас проблема, раздел FULLTEXT похоже и не должен быть?

В том что вы удалили из таблицы ключи и индексы. Выше я вам привел какие индексы должны быть у таблицы. Добавляйте их. В частности в списке стоит FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`), а у вас ошибка говорит, что такого индекса нет.

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, germanydletest сказал:

скиньте сюда.

CREATE TABLE `ru_post` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `autor` varchar(40) NOT NULL DEFAULT '',
 `date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
 `short_story` text NOT NULL,
 `full_story` text NOT NULL,
 `xfields` text NOT NULL,
 `title` varchar(255) NOT NULL DEFAULT '',
 `descr` varchar(200) NOT NULL DEFAULT '',
 `keywords` text NOT NULL,
 `category` varchar(200) NOT NULL DEFAULT '0',
 `alt_name` varchar(200) NOT NULL DEFAULT '',
 `comm_num` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `allow_comm` tinyint(1) NOT NULL DEFAULT '1',
 `allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',
 `approve` tinyint(1) NOT NULL DEFAULT '0',
 `fixed` tinyint(1) NOT NULL DEFAULT '0',
 `allow_br` tinyint(1) NOT NULL DEFAULT '1',
 `symbol` varchar(3) NOT NULL DEFAULT '',
 `tags` varchar(250) NOT NULL DEFAULT '',
 `metatitle` varchar(255) NOT NULL DEFAULT '',
 UNIQUE KEY `id_2` (`id`),
 KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8

 

5 часов назад, celsoft сказал:

Добавляйте их.

А как это сделать, подскажите пожалуйста запрос.

Ссылка на сообщение
Поделиться на других сайтах

У Вас таблица нарушена, вот как она должна выглядеть

CREATE TABLE `ru_post` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `autor` varchar(40) NOT NULL DEFAULT '',
 `date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
 `short_story` text NOT NULL,
 `full_story` text NOT NULL,
 `xfields` text NOT NULL,
 `title` varchar(255) NOT NULL DEFAULT '',
 `descr` varchar(200) NOT NULL DEFAULT '',
 `keywords` text NOT NULL,
 `category` varchar(200) NOT NULL DEFAULT '0',
 `alt_name` varchar(200) NOT NULL DEFAULT '',
 `comm_num` mediumint(8) unsigned NOT NULL DEFAULT '0',
 `allow_comm` tinyint(1) NOT NULL DEFAULT '1',
 `allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',
 `approve` tinyint(1) NOT NULL DEFAULT '0',
 `fixed` tinyint(1) NOT NULL DEFAULT '0',
 `allow_br` tinyint(1) NOT NULL DEFAULT '1',
 `symbol` varchar(3) NOT NULL DEFAULT '',
 `tags` varchar(250) NOT NULL DEFAULT '',
 `metatitle` varchar(255) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`),
 KEY `autor` (`autor`),
 KEY `alt_name` (`alt_name`),
 KEY `category` (`category`),
 KEY `approve` (`approve`),
 KEY `allow_main` (`allow_main`),
 KEY `date` (`date`),
 KEY `symbol` (`symbol`),
 KEY `comm_num` (`comm_num`),
 KEY `tags` (`tags`),
 KEY `fixed` (`fixed`),
 FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

 

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, germanydletest сказал:

У Вас таблица нарушена, вот как она должна выглядеть

Возможно ли это исправить?

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, samo733792 сказал:

Возможно ли это исправить?

нет ничего не возможного

17 минут назад, samo733792 сказал:

А как это сделать, подскажите пожалуйста запрос.

В install.php посмотрите, только Вам надо не создавать таблицу, а обновить её.

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, germanydletest сказал:

В install.php посмотрите, только Вам надо не создавать таблицу, а обновить её.

Я конечно извиняюсь за назойливость но в запросах, SQL и в PHP я нечего не понимаю, если вам не сложно можете поделится запросом?

Ссылка на сообщение
Поделиться на других сайтах

Делаете бэкап данных таблицы _post, а потом выполняете запрос

CREATE TABLE ru_post (
  `id` int(11) NOT NULL auto_increment,
  `autor` varchar(40) NOT NULL default '',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `short_story` text NOT NULL,
  `full_story` text NOT NULL,
  `xfields` text NOT NULL,
  `title` varchar(255) NOT NULL default '',
  `descr` varchar(200) NOT NULL default '',
  `keywords` text NOT NULL,
  `category` varchar(200) NOT NULL default '0',
  `alt_name` varchar(200) NOT NULL default '',
  `comm_num` mediumint(8) unsigned NOT NULL default '0',
  `allow_comm` tinyint(1) NOT NULL default '1',
  `allow_main` tinyint(1) unsigned NOT NULL default '1',
  `approve` tinyint(1) NOT NULL default '0',
  `fixed` tinyint(1) NOT NULL default '0',
  `allow_br` tinyint(1) NOT NULL default '1',
  `symbol` varchar(3) NOT NULL default '',
  `tags` VARCHAR(255) NOT NULL default '',
  `metatitle` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `autor` (`autor`),
  KEY `alt_name` (`alt_name`),
  KEY `category` (`category`),
  KEY `approve` (`approve`),
  KEY `allow_main` (`allow_main`),
  KEY `date` (`date`),
  KEY `symbol` (`symbol`),
  KEY `comm_num` (`comm_num`),
  KEY `tags` (`tags`),
  KEY `fixed` (`fixed`),
  FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)
) ENGINE=MyISAM /*!40101 DEFAULT CHARACTER SET utf-8 */

 

Ссылка на сообщение
Поделиться на других сайтах
35 минут назад, samo733792 сказал:

Как понимаю без потери постов не обойтись?

как вы думаете, зачем вам бэкап? что бы вытащить данные из ячеек  таблицы и вставить их в новую таблицу, но с учётом того что у вас таблица битая, восстановить получится только частично.

 

Как говорится добро пожаловать в клуб людей делающих ежедневные бэкапы)))

Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, germanydletest сказал:

что бы вытащить данные из ячеек  таблицы и вставить их в новую таблицу, но с учётом того что у вас таблица битая, восстановить получится только частично.

Проблему решил таким образам: сделал бекап разделов en_post и ru_post, открыл файл программой Notepadd++, у меня было так:

CREATE TABLE IF NOT EXISTS `en_post` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `autor` varchar(40) NOT NULL DEFAULT '',
  `date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `short_story` text NOT NULL,
  `full_story` text NOT NULL,
  `xfields` text NOT NULL,
  `title` varchar(255) NOT NULL DEFAULT '',
  `descr` varchar(200) NOT NULL DEFAULT '',
  `keywords` text NOT NULL,
  `category` varchar(200) NOT NULL DEFAULT '0',
  `alt_name` varchar(200) NOT NULL DEFAULT '',
  `comm_num` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `allow_comm` tinyint(1) NOT NULL DEFAULT '1',
  `allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `approve` tinyint(1) NOT NULL DEFAULT '0',
  `fixed` tinyint(1) NOT NULL DEFAULT '0',
  `allow_br` tinyint(1) NOT NULL DEFAULT '1',
  `symbol` varchar(3) NOT NULL DEFAULT '',
  `tags` varchar(250) NOT NULL DEFAULT '',
  `metatitle` varchar(255) NOT NULL DEFAULT '',
  UNIQUE KEY `id_2` (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

И заменил я данный код на вот такой:

CREATE TABLE IF NOT EXISTS `en_post` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `autor` varchar(40) NOT NULL DEFAULT '',
  `date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',
  `short_story` text NOT NULL,
  `full_story` text NOT NULL,
  `xfields` text NOT NULL,
  `title` varchar(255) NOT NULL DEFAULT '',
  `descr` varchar(200) NOT NULL DEFAULT '',
  `keywords` text NOT NULL,
  `category` varchar(200) NOT NULL DEFAULT '0',
  `alt_name` varchar(200) NOT NULL DEFAULT '',
  `comm_num` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `allow_comm` tinyint(1) NOT NULL DEFAULT '1',
  `allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',
  `approve` tinyint(1) NOT NULL DEFAULT '0',
  `fixed` tinyint(1) NOT NULL DEFAULT '0',
  `allow_br` tinyint(1) NOT NULL DEFAULT '1',
  `symbol` varchar(3) NOT NULL DEFAULT '',
  `tags` varchar(250) NOT NULL DEFAULT '',
  `metatitle` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  KEY `autor` (`autor`),
  KEY `alt_name` (`alt_name`),
  KEY `category` (`category`),
  KEY `approve` (`approve`),
  KEY `allow_main` (`allow_main`),
  KEY `date` (`date`),
  KEY `symbol` (`symbol`),
  KEY `comm_num` (`comm_num`),
  KEY `tags` (`tags`),
  KEY `fixed` (`fixed`),
  FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

Потом импортировал бекап. Похоже что нечего не потерялся, даже если что-то и не сохранился то это нечего, если я не заметил потери значит это не потери. Большое спасибо всем кто помогал, в особенности germanydletest.

Изменено пользователем samo733792
Ссылка на сообщение
Поделиться на других сайтах

Делайте бэкапы, как минимум раз в сутки, благо софта хватает, который бэкапит и выгружает бэкапы в dropbox, Яндекс.Диск  и т.д., зато спать спокойно сможете, если что-то пойдёт ни так во время работ с сайтом.

Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, germanydletest сказал:

благо софта хватает, который бэкапит и выгружает бэкапы в dropbox

Прямо сейчас работают над cron-ом чтобы настроить бекап базы (правда пока не получается, писал хостеру). А вот про бекап в dropbox это уже очень интересно, что за софт, можете дать ссылку?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...