@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 сформировать массив в нужном формате.
Технически, запрос можно сделать один на все данные, но данные будут избыточны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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