19. juli 2004 - 00:59Der er
5 kommentarer og 2 løsninger
Kategorier/Sub-Kategorier som gammes i en database
Hej, Min hjerne er ved at være helt smadret på hvordan man man samme sætte en system til at holde styr på kategorier og sub-kategorier, det skal kun gå ned til 9999 sub menuer, for at vise at man kan lave det og der ikke er nogen bebrænsning på det...
Hvad jeg er kommet frem til må der jo skulle være noget i databasen ala det her: id|navn|parent|level|
Men hvordan fanden skal det så hentes ud, skal slet ikke få noget til at virke, kun hvor der er 1 enkelt sub-kategori, men så står jeg af, medmindre man kan kalde den samme fucktion fra samme fucktion, men det er en alt for langt ude ide, der må være en smart måde at gøre det på....
Håber der ligger et par gode svar til når jeg står op i morgen :-P
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Som din opstilling er i dag, skal du lave et SQL-kald for hver niveau du vil hente ud: SELECT * FROM kategori_tabel WHERE parent=x
Hvis du vil kunne hente alle undersider og under-undersider ud, skal du have et felt mere - topid - som for alle rækker indeholder ID på den kategory som er topkategorier for denne under-kategori: SELECT * FROM kategori_tabel WHERE topid=x
Det er noget frykteligt rod, som jeg faktisk ingen gang kan finde rundt i selv længere...... Det blev lavet på en helt anden måde, men virkede kun med 1 underside, men jeg troede det virkede med flere, men det gjorde det ikke.....
Jeg kan ikke helt regne ud hvordan det skal se ud, men hvis du bare kan lave noget pseudo kode at det ville det hjælpe mig meget.....
For som jeg ser det nu kræver det jo et SQL for hvert niveau som du selv skriver, hvis man ikke har topid med i sin database.....
Men bare hvordan det ca. skal laves med hvad for nogle kald til while/for/if ting etc. så er der nok en chance for at der går et lyn op for mig ligepludselig.....
function presentLevel(parentID, level=0) { SELECT * from kat WHERE parent=parentid for hver række i resultat: { //præsenter/udskriv hver række - hvis du skal lave indryk mv. så har du level til hjælp new_parent = (parent fra rækken); presentLevel(new_parent, level+1) } }
hmm, det ser jo meget nemt ud, det vil jeg lige prøve, jeg var bare i tvivl om man kunne kalde funktionen fra sig selv, men det kan jeg så forstå at man godt kan, prøver lige at gejle noget sammen
Synes godt om
Ny brugerNybegynder
Din løsning...
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.