---
title: "Kategori -> Hur tar man egentligen bort dem?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/93239-kategori-hur-tar-man-egentligen-bort-dem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Wickmark"
published: "2003-12-22T14:21:42.000Z"
updated: "2003-12-29T11:53:51.000Z"
replies: 6
views: 313
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/93239-kategori-hur-tar-man-egentligen-bort-dem"
---

# Kategori -> Hur tar man egentligen bort dem?

## #1 — Wickmark, 2003-12-22T14:21Z

Hej alla på Webforum.nu!
Just nu sitter jag och försöker färdigställa ett forum, men har stött på några problem.

Jag vill liksom kunna ta bort kategorier i forumet, vilket är lättare sagt än gjort.

För en kategori, innehåller en underkategori, som innehåller trådar, som i sin del innehåller svar.

Alltså:

```
  [b][F_CAT][/b] [red]Kategorin[/red]
      \_____[b][F_FORUM][/b] [red]Underkategorin[/red]
                 \_____[b][F_THREADS][/b] [red]Trådar[/red]
                           \_____[b][F_ANSWERS][/b] [red]Svar på trådarna[/red]
```

Alla dessa är tabeller i databasen, men det är så tabellerna hanteras av ASP skriptet.

Jag vill såklart få bort alla underkategorier, och på samma gång ta bort alla trådar, o alla svar.
Annars ligger de bara o skräpar i databasen, i en kategori som inte finns...

Hur gör jag?

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

## #2 — OveRRidE, 2003-12-22T14:35Z

Vill du verkligen ta bort alla trådar, obönhörligen? Det verkar som lite dålig taktik för ett forum i längden. ;)

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

## #3 — Wickmark, 2003-12-23T00:00Z

Du menar att jag ska spara trådarna, trots att de ligger i en kategori som har tagits bort? :S

MVH

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

## #4 — Nickemannen, 2003-12-23T00:14Z

Du skulle ju kunna flytta dom till en bättre plats.

Annars kan du ju kika på foring key och lite sådant.
Om inte databasen stödjer foring key ja då får du ju ta bort dom manuellt med Delete \* from ....... för varje entiet (tabell).

\*\* Obs det  stavas nog inte foring key

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

## #5 — pirajan, 2003-12-23T13:33Z

Ett sätt om du vill spara dem är att i stället för att ta bort en kategori, så skulle du kunna lägga till ett fält som anger om kategorin är aktiv eller inte. Och sedan plocka ut endast de aktiva kategorierna...

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

## #6 — Wickmark, 2003-12-24T11:25Z

Hmmm, ni verkar misssförstått vad jag menade, så jag får väl dra det mer detaljerat :)

Här hittar ni forumet:
<https://www.rubensoft.nu/LWSWE/3FactionAnphillia/start.asp?mItem=40>

Som ni ser, ligger det en hel del 'underrubriker' i de olika testningskategorierna. I underrubrikerna finns sedan trådar, testnings trådar.

Det jag vill är att få bort testningskategorierna, och på samma gång ta bort underrubrikerna, trådarna och svaren.

Kanske känns onödigt när forumet är på gång på 'riktigt', men det tycker inte jag; ngn gång så tömmer man ju forumet, etc.

Det jag vill är alltså med andra ord:
1\. Jag väljer att ta bort kategorin: Cat 1 som ligger i databastabellen "F_CATEGORIES"
2\. Skriptet letar upp om kategorin finns, och ta bort den. Skriptet sparar ID'et i en variabel. 
3\. Skriptet öppnar databasfältet "F_FORUM" och slår upp alla underkategorier med samma ID som kategorin vi ville ha bort. Till slut raderas de med.
4\. Forumens ID sparas i en annan variabel
5\. Nu öppnas "F_THREADS" och alla trådar i de olika underkategorier som fanns raderas, men deras ID sparas i en annan variabel
6\. Nu är skriptet strax slut; nu ska alla svar i de olika trådarna som nyss raderats raderas. 

Jag har faktiskt ingen aning om hur man gör detta händelseförlopp så smidigt som möjligt.

Hur ska jag göra?

Oj, förresten; God Jul! :D

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

## #7 — Lasse0, 2003-12-29T11:53Z

Hej Wickmark
Det här är inte hela svaret, men jag hade ett liknande problem som jag löste med hjälp av följande kod. Den är hämtad från:
[Planet-Source](http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=6772&lngWId=4) 

\<%
' Syntax
' Submit a QUERYSTRING to deletecomments.asp, containing
' id=\[message/commentid\]
' This will delete the 'Comment ID' and any comments 'under it'

' =====================
' Recursive Delete
' =====================
' For threaded message boards, for example, to have a 'tree' effect,
' it's a fun idea to use a MessageID and ParentID type column to store
' data locations. This code will delete the MessageID and any that fall
' under it - a difficult task if you have several children ID responses.
' Hope this helps - look for a full threaded application later.
'                                                                Love,
'																  Tim
'-----------------------------------------------------------------------------------
' NOTE: If your ASP version doesn't support Split(), download this 
' handy VB Code from PSC (with a little reformatting and love, it will work)
' <http://www.pscode.com/xq/ASP/txtCodeId.11235/lngWId.1/qx/vb/scripts/ShowCode.htm>
'-----------------------------------------------------------------------------------

'---------------------------------------
' Sample Data
'---------------------------------------
' CommentID ParentID 	Subject...
'	  1			0		Topic
'	  2			0		DifferentTopic
'	  3			2		Re: DifferentTopic
'	  4			2		Re: DifferentTopic
'	  5			3		Re: Re: DifferentTopic
'	  6			5		Re: Re: Re: DifferentTopic
'  \[auto\]	 \[0=top\]	\[sample\]
'---------------------------------------
' Simply replace CommentID with a type of UNIQUE message ID
' And ParentID with a the PARENT. Set all top-level topics as '0'.
'---------------------------------------

' Recursive thread delete
' Copyright © 2001 Tim Feeley
'---------------------------------------
' Sub:		DeleteC(ID)
'           Deletes the comment \[ID\].
'---------------------------------------
Sub DeleteC(ID)
	Set DeleteC_Conn = Server.CreateObject("ADODB.Connection")
	DeleteC_Conn.Open ("DSN=fspace")
	Set DeleteC_RS = Server.CreateObject("ADODB.Recordset")
	DeleteC_RS.Open "SELECT CommentID FROM Comments WHERE CommentID = " & ID, DeleteC_Conn, 3, 3
	DeleteC_RS.Delete
	DeleteC_RS.Close
	Set DeleteC_RS = Nothing	
	DeleteC_Conn.Close
	Set DeleteC_Conn = Nothing
End Sub

'---------------------------------------
' Function:	ReturnList(ID)
'           Returns a pipe(\|) delimited
'			list of comments with ID as
'			their 'parent.'
'---------------------------------------
Function ReturnList(ID)
	On Error Resume Next
	set ReturnListConn = Server.CreateObject("ADODB.Recordset")
	ReturnListConn.ActiveConnection = "DSN=fspace"
	ReturnListConn.Source = "SELECT CommentID, ParentID FROM Comments WHERE ParentID = " & ID 
	ReturnListConn.Open
	If ReturnListConn.EOF Then ReturnList = 0
	ReturnList_Return = ""
			
	While Not ReturnListConn.EOF
		ReturnList_Return = ReturnList_Return & ReturnListConn("CommentID") & "\|"	
		ReturnListConn.MoveNext
	Wend
	
	' Strip the last \| from the end.
	ReturnList = Left(ReturnList_Return, Len(ReturnList_Return) - 1)
	
	ReturnListConn.Close
	Set ReturnListConn = Nothing
			
End Function

'---------------------------------------
' Sub:		DoIt(ID)
'           Removes anything related to
'			ID. This is the actual code.
'---------------------------------------

Sub DoIt(ID)
	tempHitList = ReturnList(ID)
	For parseloop = 0 to UBound(Split(tempHitList, "\|")) 
		workingwith = Split(tempHitList, "\|")(parseloop)
		if workingwith \<\> "0" and workingwith \<\> "" then 
			For parseloop2 = 0 to UBound(Split(workingwith, "\|")) 
				tmpHL = Split(workingwith, "\|")(parseloop2) 
				DeleteC(tmpHL)
				Call DoIt(tmpHL)
			Next
		end if
	Next
End Sub
	
'---------------------------------------
' Set Variables
'---------------------------------------

' Target: The initial CommentID to remove.
Target = Request.QueryString("ID")

' Delete the actual target record.
Call DeleteC(Target)

' Search and recursive delete the rest.
DoIt(Target)

%\>

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/93239-kategori-hur-tar-man-egentligen-bort-dem
