webForumDet fria alternativet

Oändligt antal underkategorier

ASP

31 svar · 1 581 visningar · startad av pirajan

Medlem sedan apr. 2001246 inlägg
Frågan#1

Hej!
Jag har tidigare skrivit en tråd för detta och frågat, men inte fått något tillräckligt beskrivande svar.

Jag har en tabell
tblArtiklarKategorier
fält: id, idTop, idSub, Namn

Där idSub visar vilken kategori den tillhör. idTop är id:t på översta kategorin.

Jag undrar alltså hur aka jag göra för att visa det hela som en trädmeny med oändligt med underkategorier?

Medlem sedan mars 20021 889 inlägg
#2

Skulle man kunna då se den tråden?

:)

Medlem sedan apr. 2001246 inlägg
Medlem sedan apr. 2001246 inlägg
#4

Jag har en funktion, men den gör att fet inte blir en riktig trädmeny:

<%
Function show(uid)
  strSQL="SELECT * FROM tblArtiklarKategorier WHERE idSub="&uid
  Set rs=DB.Execute(strSQL)
  Do Until rs.EOF
    response.write(rs("Namn"))
	response.write("<br>")
	    response.write("&nbsp;&nbsp;")
    response.Write(show(rs("id")))
	    response.write("<br>")
  rs.moveNext
  Loop
End Function
%>

<%=show(0)%>
Medlem sedan nov. 20017 144 inlägg
#5

Här kanske du hittar det du söker:
http://www.webforum.nu/showthread.php?s=&threadid=50488&highlight=tr�dstruktur

Medlem sedan apr. 2001246 inlägg
#6

Kanske det kanske.. :) Ska testa

Medlem sedan maj 200010 687 inlägg
#7

Skippa topp-id:t. Men kan få ut rotens id med hjälp av att kolla vilken som har null som parent-id.

Medlem sedan apr. 2001246 inlägg
#8

Just det ja! Tack!

Men jag får fortfarande bara fram en trädstruktur, med min egna funktion, där djupet bara är 2 alltså den visar bara
Ex:
ASP
   Script
   Gästböcker
   Forum

Jag använder mig alltså av min egna funktion längre upp i tråden...

Medlem sedan apr. 2001246 inlägg
#9

plz need some help!

Medlem sedan apr. 2001246 inlägg
#10

Är det ingen som kan hjälpa mig?

Medlem sedan apr. 2001246 inlägg
#11

Ni har tydligen gett upp eller? Snyft ;(

Medlem sedan nov. 20017 144 inlägg
#12

Vad är det du vill göra? Du kanske kan beskriva lite mer?

Medlem sedan apr. 2001246 inlägg
#13

Jag vill ha ut datan från tabellen till en trädmeny. Javascript m.m. fixar jag, men just att få det i en trädmeny är för mig en omöjlighet :(...

I tabellen finns bara en massa kategorier.
id är alltså Kategorins id
idSub visar vilken kategori underkategorierna står under.
Namn är kategorins namn i tabellen.

Jag vill få ut resultatet:
ex
Jonas
--Mitt liv
--Minbil
----Bilens motor
----Bilens fälgar
--Min trädgård
----Trädgårdens äpplen
------Äpplenas skal
--------Skalens färg

etc etc.
Kan någon hjälpa mig med det?
Jag använder scriptet ovan i denna tråd.
Tacksam för hjälp!

Medlem sedan mars 20015 287 inlägg
#14

Om du nu använder den funktion som du visar då kallar du på den först med typ: show(1) och den visar en nivå, hur gör du då sen för att kalla på den för att visa nästa nivå?

Medlem sedan nov. 20017 144 inlägg
#15

Det smidigaste är nog att göra en egen tabell med poster för alla top och subkategorier.
Du kan ju ändå inte lägga in oändligt med kolumner i din befintliga tabell.

BTW:Grattis Solbulle!

Medlem sedan juni 2000126 inlägg
#16

Hej,

jag har hittat en annan lösning på problemet med oändligt med underkategorier.

Om man skapar ett text fält och använder det till att lägga in den seriella informationen,
sen skapar man under kategorier och numrerar dem så här:

Jonas : 001
--Mitt liv :001001
--Minbil :001002
----Bilens motor :001002001
----Bilens fälgar :001002002
--Min trädgård :001003
----Trädgårdens äpplen :001003001
------Äpplenas skal :001003001001
--------Skalens färg :001003001001001

För att sedan få ut en sorterad lista på alla underkategorier skrivar man bara ett enda SQL sträng:

SELECT * FROM table ORDER BY serial

så kommer dem i rätt ordning.

Detta är bara ett utdrag på hur det fungerar.
För en mera detaljerad beskrivning har jag bifogat en zippad word fil med beskrivande bild och text.

Iden är tagen från Michael V Feranda efter en artikel publiserad på https://www.1aspstreet.com

Ett helt annat grep på saken en vanligt, eller hur?

Medlem sedan dec. 20003 887 inlägg
#17

Ja, förmodligen ett enkelt sätt att lösa det på. Jag kommer inte på så många andra tekniker än att göra en rekursiv funktion som för varje ny undernivå anropar sig själv med ett värde t.ex intDepth + 1. Det är ett skojigare sätt att lösa på det tycker jag :) Sen är begränsningen på antalet undernivåer mest beroende på hur mycket minne servern har.

Medlem sedan maj 200010 687 inlägg
#18

clown: Med den där metoden är det inte oändligt antal underkategorier...

Medlem sedan juni 2000126 inlägg
#19

Nja...
Okej då, men man kan utöka antalet siffror per nivå till 4 (0001)= 999 under nivåer /per nivå eller fler om det behövs så får man ganska många.
Fördelarna med denna metod är att du inte behöva bygga en rekursiv funktion som bygger upp en sql strän g och skickar in den för varje nivå, vilket tar ganska lång tid.

Här kan du få ut alla underkategorier med 1 sql sträng.

Det är nog det som är den största fördelen med denna lösningen.

Har själv försökt bygga en rekursiv SP (Stored Procedure), men med MS SQL server så kan bara en SP kalla på sig själv 32 gånger, sen är det kört...

/Jonas

Medlem sedan apr. 2001246 inlägg
#20

Tack för inläggen, men hur gör jag det som Engine^
beskriver med djupet i trädstrukturen?

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)