Что нового

Работа с базой данных для движка DataLife

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Импортирую определённую таблицу базы данных (dle_pos), но возникает проблема с тегами (ключевые слова) и записями типа рейтинга и публикации.

Дело в том, что за теги и за параметры значении рейтинга/публикации отвечают другие таблицы базы (dle_tags и dle_post_extras), так вот вопрос в том, можно ли как то из самого движка DataLife автоматический заполнить эти таблицы?

В админке есть опция перестроения материалов публикации, это позволяет пополнять таблицу dle_post_extras, но таблицу тегов оно не трогает.

Есть на форуме знатоки DataLife?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
А почему бы не заполнить теги пустыми значениями, а потом просто если нужно будет изменить их в публикации?
 

eropov

Jury
Сообщения
195
Репутация
25
Привет. Я знаю не много движок DLE и БД работал. На сколько я понял ваша таблица, которую вы хотите залить в БД зависит и от таблиц которые к ней привязаны из этого следует что заливать нужно все связанные друг с другом таблицы, если этого не сделать, то возможна потеря целостности БД с последующим ее крахом. Если возможно, то взглянув на БД из нутри понял бы суть проблемы и в свободное время помог бы вам ее залить или мигрировать, если придется либо объяснил бы, что с этим делать.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Medic84 [?]
почему бы не заполнить теги пустыми значениями, а потом просто если нужно будет изменить их в публикации?
Руками? :laugh:

eropov [?]
На сколько я понял ваша таблица, которую вы хотите залить в БД зависит и от таблиц которые к ней привязаны из этого следует что заливать нужно все связанные друг с другом таблицы, если этого не сделать, то возможна потеря целостности БД с последующим ее крахом.
Дело в том, что если я публикую материал руками, при этом указывая теги, таблица тегов (dle_tags) пополняется с этими тегами, но если я импортирую отдельно таблицу материалов (dle_post), таблица тегов не пополняется, мне нужно как то пополнить её в соответствии с уже импортированной таблицей материалов.
Я конечно могу на основе таблицы dle_post построить таблицу dle_tags, но встаёт проблема с ID новости, т.к у меня в базе он заранее неизвестен, он пустой и при импорте генерируется автоматом.
 

eropov

Jury
Сообщения
195
Репутация
25
На счет того что id новости генерируется автоматом, можно при помощи php обратить к базе по id и если он не существует то заносим в базу, так можно это обойти. Раз генерируется автоматом, значит перед записью проверяет, есть ли запись с первичным ключем ID. Я не много знаю php, работал с БД на нем.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
eropov [?]
можно при помощи php обратить к базе по id и если он не существует то заносим в базу, так можно это обойти
К какой базе?
В таблице тегов нужно указывать id материалов к которым будет привязан тег, но если он уже проставлен в материале...
Хм... получается можно сделать скрипт php который будет проверять базу материалов и на её основе генерировать базу тегов?
Если бы ещё кто -то помог написать такой скрипт :whistle:.

Medic84 [?]
Почему руками? SQL запросом. Или, правда, в файле заменить все (регуляркой естественно)
Извини, но я не уверен что понимаю о чём ты. У меня уже теги есть, или ты имеешь в виду генерировать их автоматом на основе данных материала (новости)? Нее... так не пойдёт, авто генерация тегов не настолько умна чтобы проставить “правильные” теги.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
CreatoR [?]
Извини, но я не уверен что понимаю о чём ты. У меня уже теги есть, или ты имеешь в виду генерировать их автоматом на основе данных материала (новости)? Нее... так не пойдёт, авто генерация тегов не настолько умна чтобы проставить “правильные” теги.
Я имел ввиду стереть их нафиг чтобы удалить зависимости бызы, но я так понимаю теги тебе нужны - поэтому придется сливать 50% таблиц. Потому что они там друг на друге завязаны :smile:
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Оказывается в Adminer (наверное и в phpMyAdmin тоже) есть такая опция как Создать событие для базы, я так понял там можно назначить ежедневное наполнение определённых таблиц данными.

Вопрос в том, как правильно составить SQL запрос чтобы данные брались из одной таблицы, и генерировались в другой? :stars:
 
Верх