Tengo una tabla People
. Quiero mostrar una tabla HTML que consta de todos los padres, con todos sus hijos directamente debajo de ellos.Mostrando todos los hijos de cada padre
_________
|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 |
|_______________________________________________________|
Resultados previstos:
________________________________________________
|Jeffrey Williams |
|------------------------------------------------|
| - Carol Williams |
| - Sarah Williams |
|________________________________________________|
|James Donovan |
|------------------------------------------------|
| - Nikolai Donovan |
|________________________________________________|
|Emmit Herring |
|------------------------------------------------|
|________________________________________________|
¿Cómo construir una matriz asociativa que contiene el resultado conjunto adecuado para repetir? Estoy confundido acerca del SQL correcto y el PHP correcto para construir el conjunto final.
Específicamente, no estoy seguro de cómo mostrar una relación jerárquica entre dos tablas MySQL. Los conjuntos de resultados SQL no son multidimensionales por lo que yo sé. Poner una consulta SQL en un bucle for
es terrible para el rendimiento. Entonces, ¿Qué haces?
Supongo que estoy buscando una implementación de lista de adyacencia en MySQL.
Esta pregunta debería ser fácil si pudiera dividir todo en dos tablas, pero desafortunadamente tengo que seguir con esta estructura de tabla anormal.
Puede usar jquery ¿verdad? – defau1t
¿Por qué debería tener que usar jQuery para mostrar algo tan simple como los elementos secundarios de cada elemento primario? ¿No hay una solución PHP aquí? –
@Mark Supongo que mi pregunta no era lo suficientemente clara. No estoy aquí para ayudar con la tarea. Actualicé la pregunta. –