---
title: "Faq - trädstruktur"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/159476-faq-trädstruktur"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "phred"
published: "2007-04-20T12:44:28.000Z"
updated: "2007-04-25T16:53:11.000Z"
replies: 6
views: 445
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/159476-faq-trädstruktur"
---

# Faq - trädstruktur

## #1 — phred, 2007-04-20T12:44Z

Hejsan sitter och spånar på att göra en FAQ med trädstruktur, men jag behöver en liten spark i baken för att hjärnan ska komma på rätt spår.

Har en MySQL-databas som ser ut såhär just nu.

```
tbl_headCat
    hCatId    INT   autoinc
    hCatname  varchar
    hCatDesc   varchar

tbl_subCat
    sCatId    INT   autoinc
    sCatName   varchar
    sCatdesc    varchar
    sParentId    INT
```

Jag vill ju att huvudkategorierna ska listas (inga problem) när jag klickar på en huvudkategori så ska det öppnas underkategorier (om det finns några), sen är ju utopin att man ska kunna peta in flera underkategorier i underkategorierna.

Jag känner mig inte bekväm med min hjärnverksamhet just nu.

Hoppas någon kan sparka mig i rätt rikning.

Mvh

Permalänk: https://www.webforum.nu/p/159476

## #2 — @nders, 2007-04-20T12:47Z

Det finns ingen anledning att ha två tabeller som ska lagra samma sorts information.

Lagra allt i en tabell, och skapa en tabell där du knyter ihop kategorier. Då kan du ha hur många nivåer som helst.

Permalänk: https://www.webforum.nu/p/1968858

## #3 — mirandir, 2007-04-20T12:51Z

Använda bara en enda tabell för kategorierna. Huvudkategorierna kan utmärkas genom att sätta ParentID till 0 eller null eller liknande.

EDIT: @nders hann före...

/Mirandir

Permalänk: https://www.webforum.nu/p/1968859

## #4 — phred, 2007-04-20T13:22Z

Såklart, jag tänkte rätt med underkategorierna, men såklart så behövs det ju bara en tabell för det.

> **@nders skrev:**
>
> och skapa en tabell där du knyter ihop kategorier. Då kan du ha hur många nivåer som helst.

Ok "you lost me with hello".

```
tbl_categories
     catID
     CatName
     catDesc
     parentID

tbl_tabellensomknyterihop
       ?
       ?
       ?
```

 

Det där skulle jag behöva försöka förstå lite närmare, läsa om vad ? Titta på vad ? Tips och trix.

Mvh

Permalänk: https://www.webforum.nu/p/1968868

## #5 — @nders, 2007-04-20T13:35Z

Ta bort parentID ur kategoritabellen.

I knytningstabellen har du två fält; parentID, subcatID.
Det passar bra att dessa två fält tillsammans utgör nyckel i tabellen.

Permalänk: https://www.webforum.nu/p/1968871

## #6 — MickeA.com, 2007-04-20T14:45Z

Tjena
Tänkte att jag skulle försöka hjälpa till lite, men har fastnat själv.
Såhär har jag gjort:

```
[i]categories_table[/i]
cat_id (int, auto_incr.)
cat_name (varchar)
cat_desc (text)

[i]connection_table[/i]
main_id (int)
sub_id (int)
```

Min Sql-fråga:

```
sSql =	"SELECT " &_
	"t1.main_id, t1.sub_id, " &_
	"t2.cat_id, t2.cat_name " &_
	"FROM connection_table t1 INNER JOIN categories_table t2 " &_
	"ON t1.main_id = t2.cat_id " &_
	"ORDER BY t1.main_id ASC"
```

Sen aspkoden:

```
Set rs = oConn.Execute(sSql)
If Not rs.EOF Then
	main_id = 0
	While Not rs.EOF
		If main_id <> rs("main_id") Then
			Response.Write(rs("cat_name") & "<br />")
		End If
		Response.Write(rs("cat_name") & "<br />")
		main_id = rs("main_id")
	rs.MoveNext
	Wend
Else
	Response.Write("...")
End If
rs.Close : Set rs = Nothing
oConn.Close : Set oConn = Nothing
```

Men det blir inte riktigt rätt resultat:

```
Kat 1
Kat 1
Kat 1
Kat 1
Sub 1-1
Sub 1-1
```

Något saknas, men vad?

Permalänk: https://www.webforum.nu/p/1968893

## #7 — MickeA.com, 2007-04-25T16:53Z

Är det ingen som har nån idé om det här?
Skulle vilja få ihop min kod ovan.

Tack!

Permalänk: https://www.webforum.nu/p/1969951

---

Tråden på webben: https://www.webforum.nu/amne/asp/159476-faq-trädstruktur
