Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Какой нужен запрос в БД для изменения значения дополнительного поля новости?

Какой нужен запрос в БД для изменения значения дополнительного поля новости?


     12.09.2015    Общие вопросы по PHP, Модули, MySQL    1754

вопрос
Здравствуйте
Сразу три вопроса.
1. Уже пол дня методом тыка перебираю варианты, не выходит.
Мне нужно записать в БД значение конкретного дополнительного поля из модуля
Тут есть что-то похожее, но мне не подходит...
2. Аналогично, но взять из базы значение этого поля.
3. Изменить дату добавления новости на текущую

Буду благодарен за советы

Ответа пока нет


4 комментария

dj-avtosh
php-developer

dj-avtosh - 14 сентября 2015 10:04 -

Что бы НЕ распространялось на поля с пустым значением:

UPDATE dle_post SET xfields = 
(

SELECT new_string FROM ( SELECT

@xfield_find_str := 'test_date', # xfields name

@xfield_new_str := `date`, # replace xfields to

@parse_query := SUBSTRING_INDEX( SUBSTRING_INDEX( xfields , CONCAT( @xfield_find_str, '|' ), -1 ), '||', 1 ),

IF (
@parse_query = '',
xfields,
REPLACE( xfields, CONCAT( CONCAT( @xfield_find_str, '|' ), @parse_query ), CONCAT( @xfield_find_str, '|', @xfield_new_str ) )
) new_string

FROM dle_post WHERE id = 5 ) new_xfields

) WHERE id = 5

skype: elhan.isaev
telegram: @blob42

dj-avtosh
php-developer

dj-avtosh - 14 сентября 2015 10:28 -

Что бы распространялось на поля с пустым значением:

UPDATE dle_post SET xfields = 
(

SELECT new_string FROM ( SELECT

@xfield_find_str := 'test_date', # xfields name

@xfield_new_str := `date`, # replace xfields to

@parse_query := SUBSTRING_INDEX( SUBSTRING_INDEX( xfields , CONCAT( @xfield_find_str, '|' ), -1 ), '||', 1 ),

REPLACE( xfields, CONCAT( CONCAT( @xfield_find_str, '|' ), @parse_query ), CONCAT( @xfield_find_str, '|', @xfield_new_str ) ) new_string

FROM dle_post WHERE id = 5 ) new_xfields

) WHERE id = 5

skype: elhan.isaev
telegram: @blob42

dj-avtosh
php-developer

dj-avtosh - 14 сентября 2015 10:30 -

Результат выполнения:

было

test_date|2015-02-02 00:35:09||test_date_2|2015-06-05 00:00:09


стало

test_date|2015-09-05 00:38:11||test_date_2|2015-06-05 00:00:09

skype: elhan.isaev
telegram: @blob42

dj-avtosh
php-developer

dj-avtosh - 15 сентября 2015 11:22 -

Перечитал вопрос, вам надо из доп поля писать в БД, не советую этого делать, т.к. в доп поле на уровне mySQL почти нереально фильтровать, что это именно дата вписана.

Обратное выше.

Для записи даты новости в доп. поле.

skype: elhan.isaev
telegram: @blob42

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх