Что нового

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

CreatoR

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

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

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

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

Medic84

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

eropov

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

CreatoR

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

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

Medic84

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

CreatoR

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

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