@Intelix

Как сделать запись и получение данных?

Каким образом здесь утроена структура бд?

Какой тип имеют поля address, company?
У меня есть бд с таблицами tasks, users и промежуточной tasksUsers для связи многие-ко-многим.
Поля таблиц
users
user_id 
name

tasks
task_id
name
executors
links

tasksUsers
task_id
user_id

Создаю и получаю записи из бд с помощью php, пытаюсь так.
INSERT INTO tasks SET
    task_id=:task_id, name=:name, executors=:executors, links=:links

SELECT
    t.task_id, t.links, t.name, t.links,
    e.user_id AS executors
    FROM tasks t 
    LEFT JOIN taskUsers e ON e.task_id = t.task_id
    LEFT JOIN users u ON e.user_id = u.user_id
    ORDER BY t.task_id ASC

Но с клиента, перед записью в бд, приходят данные в таком формате:
{
"task_id": "task_a1",
"name":"Задача",
"executors":["user_a1","user_a1","user_a3"],
"links":["link1","link2","link3"]
}

Как мне их записать в бд с помощью php, чтобы в результате получать их в таком виде как на скриншоте в начале вопроса?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
Каким образом здесь утроена структура бд?

Произвольным. Здесь, похоже, вы видите результат какой-то выборки.

Какой тип имеют поля address, company?

String. А данные - либо array, либо stdClass, смотря как делали json_decode().

Как мне их записать в бд

Получить id нужных пользователей, затем сделать один insert для создания задачи и еще один insert для связывания задачи с пользователями.
Но при чем тут задачи и пользователи, если разговор идет про адреса и компании?

получать их в таком виде

Один запрос на задачу и один запрос на ее пользователей. На php сформировать массив в нужном формате.
Технически, запрос можно сделать один на все данные, но данные будут избыточны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽