yura
Гуру форума
- Регистрация
- 5 Апр 2006
- Сообщения
- 468
- Реакции
- 69
- Автор темы
- #1
Всем привет!
У меня проблема с ДЛЕ и его базой. Ранее я уже создавал тему в разделе по ДЛЕ ( Для просмотра ссылки Войдиили Зарегистрируйся ) однако там пришли к выводу, что с самим ДЛЕ все ОК и проблема в базе...
Проблема в том, что в некоторых новостях не выводятся похожие новости. Айди похожих новостей ДЛЕ хранит в поле related_ids таблицы dle_post_extras. При очистке кеша похожих новостей в админке все поля с айди похожих новостей очищаются. Когда же пользователь заходит в новость - ДЛЕ отправляет в базу запрос есть ли что-то в поле related_ids. Если нет - в него вписываются айди похожих новостей.
НО... Вписываются они не всегда По личным наблюдениям проблема присуща в основном "старым" новостями либо новым новостям из старых категорий. Дело в том, что сайту примерно 8 лет и первоначально он создавался еще на ДЛЕ версий 7.х после чего постепенно обновлялся до 10.х. Грешу на то, что при всех этих обновлениях в базе что-то "нарушилось".
Включал логирование мускула. Фрагмент с лога при котором похожие новости не вписались
А тут все вписалось
Выполнил в пхпмайадмин запрос который вписывает айди похожих
Вписалось.
Выполнил еще такой запрос
Пустой результат, т.е. ноль строк. Новости с айди 3121 и 6, о которых упоминалось в запросах, как раз из числа проблемных где похожие новости не выводятся.
Помогите пожалуйста. Куда копать?
У меня проблема с ДЛЕ и его базой. Ранее я уже создавал тему в разделе по ДЛЕ ( Для просмотра ссылки Войди
Проблема в том, что в некоторых новостях не выводятся похожие новости. Айди похожих новостей ДЛЕ хранит в поле related_ids таблицы dle_post_extras. При очистке кеша похожих новостей в админке все поля с айди похожих новостей очищаются. Когда же пользователь заходит в новость - ДЛЕ отправляет в базу запрос есть ли что-то в поле related_ids. Если нет - в него вписываются айди похожих новостей.
НО... Вписываются они не всегда По личным наблюдениям проблема присуща в основном "старым" новостями либо новым новостям из старых категорий. Дело в том, что сайту примерно 8 лет и первоначально он создавался еще на ДЛЕ версий 7.х после чего постепенно обновлялся до 10.х. Грешу на то, что при всех этих обновлениях в базе что-то "нарушилось".
Включал логирование мускула. Фрагмент с лога при котором похожие новости не вписались
Код:
140 Connect dle_user@localhost on base
140 Query SET NAMES 'cp1251'
140 Query SELECT category FROM dle_post where id = '3121' AND approve
140 Query SELECT * FROM dle_users WHERE user_id='1'
140 Query SELECT * FROM dle_post LEFT JOIN dle_post_extras ON (dle_post.id=dle_post_extras.news_id) WHERE id = '3121'
140 Query UPDATE dle_post_extras SET news_read=news_read+1 WHERE news_id='3121'
140 Query SELECT id, date, short_story, xfields, title, category, alt_name FROM dle_post WHERE category regexp '[[:<:]](272)[[:>:]]' AND MATCH (title, short_story, full_story, xfields) AGAINST ('ТАЙТЛ НОВОСТИ ') AND id != 3121 AND approve=1 AND date < '2015-12-26 20:22:23' LIMIT 4
140 Quit
Код:
89 Connect db_user@localhost on base
89 Query SET NAMES 'cp1251'
89 Query SELECT category FROM dle_post where id = '830' AND approve
89 Query SELECT * FROM dle_post LEFT JOIN dle_post_extras ON (dle_post.id=dle_post_extras.news_id) WHERE id = '830'
89 Query UPDATE dle_post_extras SET news_read=news_read+1 WHERE news_id='830'
89 Query SELECT id, date, short_story, xfields, title, category, alt_name FROM dle_post WHERE category regexp '[[:<:]](137)[[:>:]]' AND MATCH (title, short_story, full_story, xfields) AGAINST ('Tuning Ford Focus Tuning Ford Focus ST') AND id != 830 AND approve=1 AND date < '2015-12-26 20:21:58' LIMIT 4
89 Query UPDATE dle_post_extras SET related_ids='836,837,835,832' WHERE news_id='830'
89 Quit
Код:
UPDATE dle_post_extras SET related_ids='4,5,7,8' WHERE news_id='6'
Выполнил еще такой запрос
Код:
SELECT id, date, short_story, xfields, title, category, alt_name FROM dle_post WHERE category regexp '[[:<:]](272)[[:>:]]' AND MATCH (title, short_story, full_story, xfields) AGAINST ('ТАЙТЛ НОВОСТИ ') AND id != 3121 AND approve=1 AND date < '2015-12-26 20:22:23' LIMIT 4
Помогите пожалуйста. Куда копать?