webForumDet fria alternativet

Forum: Trädstrukturs loop?

ASP

24 svar · 309 visningar · startad av Lukaspojken · sida 2 av 2

Frågan, av Lukaspojken

Jag vet hur jag ska upptäcka det första länk-skiktet till huvudinläggen men jag vet inte hur jag ska skriva ut det resterande skick...dvs Huvudinlägg Re: inlägg (Första länk-skiktet) Re: Re: inlägg (Andra länk-skiktet) etc. Koden för att loopa fram första länk-skiktet är Visa = "SELECT FROM forum WHERE msgUnderId=" & HuvudInlagg RecSet.Open Visa, Connect, 3, 3 Do While Not RecSet.EOF

Läs frågan i sin helhet →
Medlem sedan maj 20011 312 inlägg
#21

Uppdaterar den alla med ett...det behövs ingen loop för det då eller?

Jag skrev

Uppdatera = "Update forumSvar SET Thread_ReplyOrder=Thread_ReplyOrder +1 WHERE Thread_ReplyOrder >" & Request.Form("Thread_ReplyOrder") & " AND " Thread_ID=" & Request.Form("Thread_ID")
Connect.Execute(Uppdatera)
Medlem sedan mars 2001484 inlägg
#22

Det ser bra ut med ett undantag:

WHERE Thread_ReplyOrder >" & Request.Form("Thread_ReplyOrder") & " [b]AND "[/b] Thread_ID=" & Request.Form("Thread_ID")

Citattecknet ska inte vara där.

------------------
/ jeps0

Medlem sedan mars 20011 346 inlägg
#23

Har du piggnat på dig jepsO ;) så att vi kan få se forumet i skriptsamlingen?

Medlem sedan juni 20008 205 inlägg
#24

Jag tycker att Jeps0's variant verkar väldigt krånglig att uppdatera, och dessutom lagrar man samma data flera gånger (eftersom "djupet" redan finns i databasstrukturen).
Så här skulle jag säga (som Vide, fast mer detaljerat):
Först en tabell med inlägg:
- inläggets_id: räknare eller vad man nu vill ha)
- svar_till: Id för det inlägg som detta inlägg är ett svar till, eller NULL om det inte är svar på något.
- Plus alla andra fält du kan tänkas vara intresserad av att visa.
Sen, en rekursiv funktion som ser ut så här i min pseudokod:

subrutin visa_tråd(föräldra_id){
	resultatet = databassökning på "SELECT * FROM inlägg WHERE svar_till = föräldra_id"
	om resultatet innehåller några poster{
		skriv ut "<ul>"
		för varje post i resultatet{
			skriv ut "<li>"
			skriv ut relevanta data från posten
			anropa visa_tråd(inläggets_id från nuvarande posten)
			skriv ut "</li>"
			gå till nästa post
		} ' slut på slinga över posterna
		skriv ut "<ul>"
	} ' slut på "om"
} ' slut på subrutin

Voila, bara att översätta till vbscript!
För att ta hänsyn till att man inte kan säga "WHERE svar_till = NULL" i en sql-fråga utan måste säga "WHERE svar_till IS NULL" måste du förstås pilla litegranna, men det är ju det som är skoj, inte sant? ;)
Hur som helst, jag har gjort ett forum i php som funkar precis så här, så nej, det behövs inte flera tabeller...

------------------
All things serve the Beam!

Medlem sedan mars 20011 346 inlägg
#25

Thnx alot!

Ska kolla på detta senare.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)