FAQ |
Kalender |
2013-07-17, 00:13 | #1 | ||
|
|||
Medlem
|
Hej,
Jag måste lagra ett stort antal kategorier med tillhörande parents. Just nu ser min enda tabell ut såhär: ID, NAME, PARENT_ID Och de kategorier som inte har en parent får naturligtivs PARENT_ID 'NULL' Är detta ett bra sätt att lagra datan på? Jag får det jävligt krångligt när jag ska hämta ut alla kategorier och sortera dem. Kan man göra på något annat sätt? Det ska fungera med oändligt antal parents. |
||
Svara med citat |
2013-07-17, 00:14 | #2 | |||
|
||||
Mycket flitig postare
|
Det är så det ska göras ja.
Det du vill göra är en rekursiv metod, som hämtar alla underkategorier. |
|||
Svara med citat |
2013-07-17, 00:46 | #3 | ||
|
|||
Medlem
|
Okej, men nu vill jag lista upp alla i ett "träd". Likt detta:
HTML-kod:
|__ Parent |__ CHILD1 |__ CHILD2 |__ GRANDCHILD1 |__ GRANDCHILD2 |__ Parent1 |__ CHILD4 |__ CHILD5 |__ GRANDCHILD8 |__ GRANDCHILD23 Här är mitt försök: PHP-kod:
|
||
Svara med citat |
2013-07-17, 01:01 | #4 | |||
|
||||
Mycket flitig postare
|
Som jag sa, en rekursiv metod är vad du ska använda.
PHP-kod:
|
|||
Svara med citat |
2013-07-17, 09:05 | #5 | ||
|
|||
Medlem
|
Jag förstår hur du tänker mig ja kan inte se hur det kan sortera sig själv.Det blir väl exakt likadant som min kod?
|
||
Svara med citat |
2013-07-17, 09:12 | #6 | |||
|
||||
Mycket flitig postare
|
Edit: Tar bort koden jag nyss postade då jag nyss kom på att du är användaren frecka. Mod kan ta bort detta inlägg. Hänvisar till tråden http://www.wn.se/t1055558.html
Senast redigerad av yakuzaemme den 2013-07-17 klockan 09:23 |
|||
Svara med citat |
2013-07-17, 09:58 | #7 | ||
|
|||
Medlem
|
Va?
'spara ner dennes namn' Jag förstår inte din pseudo kod så bra |
||
Svara med citat |
2013-07-17, 11:43 | #8 | |||
|
||||
Mycket flitig postare
|
Ha en array, vi kan kalla den categories.
Loopa igenom alla kategorier som har parent=0, dvs. huvudkategorierna Spara ner namnet på denna kategori i categories (categories[] = namnet) Loopa igenom funktionen getCategories, där id är den aktiva kategoriern i loopen I getCategorier, kör en query som hämtar alla children (dvs som har parent = id) Loopa igenom denna query och lägg till namn + getCategorier(kategori id i loopen) Returnerna en array Vill inte ge dig färdig kod pga. hur du betett dig innan, utan nu blir det lite eget tänk |
|||
Svara med citat |
2013-07-17, 16:55 | #9 | ||
|
|||
Medlem
|
Ska prova det du sa, har aldrig riktigt förut kodat rekursivt så det blir lite nytt. Ja helst vill ja ha pseudokod eller som du nu skrev, hur man gör steg för steg. Antar att man lär sig lite bättre om hur man gör det då.
Anledningen till att ja har gjort ett annat konto är för att varje gång jag skrev något på det gamla fick jag massa skitkommentarer som var OT Hoppas på bättre lycka här nu.. |
||
Svara med citat |
2013-07-17, 18:25 | #10 | ||
|
|||
Medlem
|
Nu har jag lyckats att få den array jag vill ha. Här är koden:
PHP-kod:
PHP-kod:
|
||
Svara med citat |
Svara |
|
|