xoma2
@xoma2
Программист

Как объединить значения из $_POST удалить лишнее и записать все в БД?

Изначально приходят так
[5] => Array(
            [post_id] => 1038
            [data_type] => photoSignImage 
            [post_data] => image.jpg
        )
    [6] => Array(
            [post_id] => 1038
            [data_type] => photoSignText
            [post_data] => some text
        )


Задача из 2х массивов сделать один. В котором в post_data объедененные строки, а data_type меняется на photo. Все остальное удалить.

На выходе так
[5] => Array(
            [post_id] => 1038
            [data_type] => photo
            [post_data] => image.jpg|||some text
        )


У меня получается безумно много кода и в итоге все равно не выходит подскажите как реализовать
  • Вопрос задан
  • 2424 просмотра
Решения вопроса 1
Slavenin999
@Slavenin999
программист php/erlang/elixir/js
Если я правильно понимаю, то на входе в одном элементе, картинка, во втором комментарий к ней. В этом случае хранить всё можно в двух таблицах, первая - основная сущность id которой фигурирует в ключе post_id. Вторая - таблица фотографий с адресом фотографии в одном поле и комментарием к ней во втором. Примерно так:
foreach ($data as $item)
{
	$insert = array();
	if ($item['data_type'] === 'photoSignImage')
	{
		$insert['path'] = $item['post_data'];
	}
	elseif ($item['data_type'] === 'photo')
	{
		$insert['comment'] = $item['post_data'];
	}
	$insert['id'] = $item['post_id'];

	db::insert_record('table', $insert);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Самое главное - никогда не храни ничего в БД "через |||"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы