FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Medlem
|
Intressant länk med "Hierarchical Data" och "Nested set model".
Men också avancerat, som jag förstår detta, med bibehållen tabellstruktur är alternativet selfjoins SELECT t1.forum_name AS lev1, t2.forum_name as lev2, t3.forum_name as lev3, t4.forum_name as lev4 FROM forums AS t1 LEFT JOIN forums AS t2 ON t2.parent = t1.id LEFT JOIN forums AS t3 ON t3.parent = t2.id LEFT JOIN forums AS t4 ON t4.parent = t3.id WHERE t1.forum_name= 'Spel' AND t4.forum_name= 'Skärmdumpar'; Personligen skulle jag dock gå på ConnyWesth alternativ i detta specifika fall, om vi antar att man ska bygga ett eget enkelt forum. Givet att det inte blir fler än ett par hundra forumkategorier kan man ju även hämta all data och spara i en array, då blir det endast ett sql anrop $query = 'SELECT * Forum;'; $result = MYSQL_QUERY($query); $forums= array(); while($row = mysql_fetch_array($result)) { // stoppa in data i $forums array } function category(categoryID) if (categoryID==NULL) // Nu har vi nått root-nivån else // Slå upp den nya parentID för aktuell categoryID // hämta data från $forums array // Sen anropar du category()-funktionen igen med parentID som parameter category(parentID) endif End function |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
Vi har inte sett någon annan kod så de olika lösningarna som vi ställer mot varandra kan mkt väl vara en droppe i havet. Vi har heller ingen aning om vilka krav som finns ang. prestanda så det finns egentligen inget värde i att snacka optimering. Visst kan vi diskutera fram och tillbaka rent generellt men jag ser inte någon mening med det. Jag får iaf inte ut något av det.
Ang. läsbarhet: man behöver inte skriva ett blogginlägg för att förklara hur en rekursiv metod funkar (till skillnad mot t.ex. nested set-modellen) vilket borde ge en indikation på vilken av lösningarna som är enkel/tydlig/läsbar/etc. Rekursiva metoder är dock knepiga att få grepp om för en del ![]() |
|||
![]() |
![]() |
Svara |
|
|