18. august 2009 - 15:01Der er
20 kommentarer og 2 løsninger
treeview..
jeg har en tabel med id, parentid og navn
hvordan får jeg lavet et treeview til den? Det er sådan at der er muligt med uendeligt led.. altså et child kan have et child som kan have et child som kan have et child ovs, osv, osv...
Der er ingen mulighed for at se hvor en parentid befinder sig ift. en anden parentid..
og så lave en Recursive Function som loop igennem sig selv og finder parentid for hver id og ligge det i en nye array som du så kan udskrive det på siden efterfølgende..
Du kan ikke undgå noget ved at bruge en bestemt variabeltype. Du kunne i princippet også bruge en streng du kunne parse til skidtet om nødvendigt.
Funktion laver et rekursivt kald og kontakter databasen mange gange. Jeg ved ikke om der nogle MySQL eksperter der ville kunne sammensætte en tilpas kompliceret streng for at opnå samme resultat med et enkelt databasekald (jeg tvivler dog).
Der er ikke meget at optimere på i denne forbindelse. Du kunne overveje at cache dit array og optimere den vej igennem, men databasekaldene her er så minimalt resourcekrævende at det ikke ville kunne betale sig at gå op i.
repox >> Det har du vist helt misforstået. Man laver naturligvis kun én forespørgsel til databasen. Resultatet fyldes i et array, som efterfølgende bruges til udskrivning af træet. Ellers bliver det alt for dårligt performende ;o)
Så skal jeg have udpenslet hvad den jakobdo rent faktisk gør. Altså, fra min vinkel ser det ud som at, hvis jeg nu sætter $parent til 0, så vil jeg få træet rodelementer.
Hertil vil løkken lække alle rodelementerne i et et array ($menu_array) og derefter afsluttes løkken. For at få rodelementernes children, skal jeg jo køre et nyt mysql-kald for hvert rodelement der var?
Ellers må du lige uddybe, hvis jeg stadig misser pointen i det jakobdo skriver.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.