![]() |
Hur lagra kategorier
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. |
Det är så det ska göras ja.
Det du vill göra är en rekursiv metod, som hämtar alla underkategorier. |
Okej, men nu vill jag lista upp alla i ett "träd". Likt detta:
HTML-kod:
|__ Parent Här är mitt försök: PHP-kod:
|
Som jag sa, en rekursiv metod är vad du ska använda.
PHP-kod:
|
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?
|
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
|
Va?
'spara ner dennes namn' Jag förstår inte din pseudo kod så bra |
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 |
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.. |
Nu har jag lyckats att få den array jag vill ha. Här är koden:
PHP-kod:
PHP-kod:
|
Alla tider är GMT +2. Klockan är nu 07:44. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson