Ursprungligen inskrivet av Leedow
Just hierarktiskt struktur (även kallad trästruktur) är ett problem som jag hade förut när jag skulle göra en blogg till tjejen. Det var just comment/reply-funktionen jag hade problem med. Jag kom så långt till att ha parent_id och sådär, men projektet dog strax efter det.
Nu när du nämner det igen så väcktes mitt intresse igen. Jag satt 3h igår efter jag kommenterade och googlade och testade och gjorde allt.
Slutsatsen jag nu kan dra är att mysql inte har stöd för recursiva querys (alltså stöd för att hämta ut hierarktisk data). De har en artikel om det, men jag skulle mer se det som en fullösning.
http://dev.mysql.com/tech-resources/articles/hierarchical-dat...
MS SQL och Oracle har såklart stöd för detta, men jag tippar på att det är mysql du kommer använda?
Jag har hittat ett antal lösningar att kunna hämta ut hierarktiskt data ur mysql utan hjälp av stored procedures:
Första lösningen är att spara datat som jag skrev tidigare och köra en select * på rubbet och sen göra en user defined sort pattern med hjälp av usort() i php.
Andra lösningen är mer omständig och kräver flera querys men de är däremot små. Först hämta ut alla med parent_id 0 (vi kallar dessa PARENTS) och sen hämtar man ut alla med parent_id = PARENT.current_id (vi kallar dessa CHILDREN). Sen fortsätter man så tills det inte finns några kvar. Jag tycker att usort() i php blir bra mycket enklare.
Tredje lösningen står under länken jag postade där man med hjälp av JOIN querys skriver ut datat.
Kort och gott: Det går inte att göra recursiva sql-querys i mysql. Det går att göra det på databassidan med hjälp av lagrade procedurer men enklast är helt enkelt att göra det i php.