Я только учусь разбираться в sql и php. У меня есть 4 таблицы, структурированные следующим образом
+-----------+ +------------+ +---------+ +----------+
| Project | | Slide | | Shape | | Points |
+-----------+ +------------+ +---------+ +----------+
| id | | id | | id | | id |
+-----------+ | project_id | | cont_id | | shape_id |
+------------+ +---------+ | x |
| y |
+----------+
Как вы можете видеть, таблицы связаны по идентификатору вплоть до точек, что означает, что проект будет содержать несколько слайдов, содержащих несколько фигур, содержащих определенное количество точек.
У меня есть запрос SQL
SELECT slide.`id`, shape.`id`, points.`x_point`, points.`y_point`
FROM `project`, `slide`, `shape`, `points`
WHERE 1 = slide.`project_id`
AND slide.`id` = shape.`slide_id`
AND shape.`id` = points.`shape_id`
Я хочу получить результаты этого запроса, которые выглядят так
[0] => stdClass Object
(
[id] => 27
[x] => 177
[y] => 177
)
[1] => stdClass Object
(
[id] => 27
[x] => 178
[y] => 423
)
[2] => stdClass Object
(
[id] => 27
[x] => 178
[y] => 419
)
[3] => stdClass Object
(
[id] => 27
[x] => 178
[y] => 413
)
[4] => stdClass Object
(
[id] => 27
[x] => 181
[y] => 399
)
[5] => stdClass Object
(
[id] => 27
[x] => 195
[y] => 387
)
[6] => stdClass Object
(
[id] => 27
[x] => 210
[y] => 381
)
[7] => stdClass Object
(
[id] => 27
[x] => 231
[y] => 372
)
[8] => stdClass Object
(
[id] => 27
[x] => 255
[y] => 368
)
[9] => stdClass Object
(
[id] => 27
[x] => 283
[y] => 368
)
... AND CONTINUED FOR A LONG TIME
Я хочу преобразовать этот чудовищный массив дерьма во что-то, что больше похоже на это
[9] => stdClass Object
(
[id] => ID OF LIKE SHAPES
[x] => Array(ALL THE X POINTS)
[y] => ARRAY(ALL THE Y Points)
)
I не могу, хоть убей, понять, как преобразовать это в такой массив.
Если это невозможно сделать с помощью разработанного мной запроса, есть ли лучший запрос. Может быть, тот, кто набирает очки, затем берет и помещает их в массив точек ... Думаю, у меня только что появилась идея ...
Новая информация,
Итак, я добавил ответ на этот вопрос, Не знаю, стандартный ли это способ. Чтобы помочь найти другие ответы, если мое решение не подходит, я также добавлю сюда свой мыслительный процесс.
Для получения дополнительной информации ознакомьтесь с моим ответом ниже.
Также как ORM соотносится с моим алгоритмом ниже?