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

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


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

вопрос
Здравствуйте
Сразу три вопроса.
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

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

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

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

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

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

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

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

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

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

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

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

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

наверх