У меня есть таблица People
. Я хочу отобразить таблицу HTML, состоящую из каждого родителя, со всеми их дочерними элементами непосредственно под ними.
_________
|People |_____________________________________________
|-------------------------------------------------------|
| id | parent | firstname | lastname |
|-------------------------------------------------------|
| 1 0 James Donovan |
| 2 0 Jeffrey Williams |
| 3 0 Emmit Herring |
| 4 2 Carol Williams |
| 5 2 Sarah Williams |
| 6 1 Nikolai Donovan |
|_______________________________________________________|
Ожидаемый результат:
________________________________________________
|Jeffrey Williams |
|------------------------------------------------|
| - Carol Williams |
| - Sarah Williams |
|________________________________________________|
|James Donovan |
|------------------------------------------------|
| - Nikolai Donovan |
|________________________________________________|
|Emmit Herring |
|------------------------------------------------|
|________________________________________________|
Как мне создать ассоциативный массив, содержащий правильный набор результатов, для повторения? Я запутался в правильном SQL и правильном PHP для создания финального массива.
В частности, я не уверен, как отображать иерархическую взаимосвязь между двумя таблицами MySQL. Насколько я знаю, наборы результатов SQL не являются многомерными. Включение SQL-запроса в цикл for
ужасно для производительности. Итак, что вы делаете?
Я предполагаю, что я ищу реализацию списка смежности в MySQL.
Этот вопрос должен быть легким, если бы я мог разделить все на две таблицы, но, к сожалению, я должен придерживаться этой ненормальной структуры таблиц.