webForumDet fria alternativet

Redirect till den skapade tråden!

ASP

7 svar · 284 visningar · startad av M.Cheraghi

Medlem sedan juli 20015 107 inlägg
Frågan#1

Halopp!

Håller på att skapa den delen av ett forum där tråden skapas! jag vill att när tråden har blivit skapt så skall personen som skapade tråden redirectas till tråden han skapade!
Men frågan är hur?

Jag kan juhe göra en SELECT sats där man hämtar den senaste skapta tråden, men om forumet är hårdtrafikeras komemr det bli fel, att han komemr hamna till nån annans tråd som skapades nån millemicro sekund efter hans egna!
Jag mig själv veterligen inte komma på någon bra lösning! här är koden som skapar en tråd! iaf :)

Fetmarkerat är där tråden läggs in i databasen!

ForumID    = request.querystring("ForumID")
CategoryID = request.querystring("CategoryID")
ipnummer   = request.ServerVariables("REMOTE_ADDR")
AnswerBy   = session("uname")
svar       = request.form("svar")
rubrik     = request.form("rubrik")
LastTime   = now()

	IF svar = "" OR rubrik = "" then
		response.redirect "inside.asp?vad=forum&forum=ShowForum"
	End IF

	Set conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databaser/forum.mdb")&";"

	[b]strSQL = "INSERT INTO tblThread (ForumID, CategoryID, ThreadName, ThreadMessage, ThreadLastWriter, ThreadCreator, ipnummer) VALUES ('"&ForumID&"', '"&CategoryID&"' , '"&rubrik&"' , '"&svar&"' , '"&AnswerBy&"' , '"&AnswerBy&"' , '"&ipnummer&"')"
	conn.execute(strSQL)[/b]

	strSQL = "SELECT foruminlagg FROM tblUser WHERE username = '"&AnswerBy&"'"
	SET RSuser = conn.execute(strSQL)

	foruminlagg = RSuser("foruminlagg") + 1

	strSQL = "UPDATE tblUser SET foruminlagg = '"&foruminlagg&"' WHERE username = '"&AnswerBy&"'"
	conn.execute(strSQL)

	strSQL = "UPDATE tblCategory SET CategoryLastWriter = '"&AnswerBy&"' , CategoryLastTime = '"&LastTime&"' WHERE CategoryID = "&CategoryID&""
	conn.execute(strSQL)

	strSQL = "UPDATE tblForum SET ForumLastWriter = '"&AnswerBy&"' , ForumLastTime = '"&LastTime&"' WHERE ForumID = "&ForumID&""
	conn.execute(strSQL)

RSuser.close
Conn.close
SET RSuser = nothing
SET conn   = nothing
Medlem sedan feb. 20011 498 inlägg
#2

Du kan ju hämta den senaste skapta tråden som är ens egen istället för alla?

Då slipper du risken att man hamnar i någons annans tråd.

Medlem sedan juli 20015 107 inlägg
#3

ampy skrev:

Du kan ju hämta den senaste skapta tråden som är ens egen istället för alla?

Då slipper du risken att man hamnar i någons annans tråd.

Jo men _hur_ hämtar jag ens egna tråd :OO Det är det jag inte förstått mig på! Dra en selectsats som hämtar senaste tråden från för den inloggade användaren? det är juhe en möjlighet!
men det verkar bli rätt bökigt, kan man inte hämta det lättare typ genom att köra RecSet på INSERT sql'en och hämta ThreadID som precis blev instoppat i databasen!?

Mvh

Medlem sedan feb. 20011 498 inlägg
#4

Tror inte det går men eftersom du med 100% säkerhet vet att den finns en rad i databasen behöver du inte skapa ett recordset.

lastThreadID = connect.execute("select id from tblThread where ThreadCreator = '"&AnswerBy&"' order by id desc").GetRows()

Du hämtar ut id:et med lastThreadID(0,0).

Medlem sedan juli 20015 107 inlägg
#5

ampy skrev:

Tror inte det går men eftersom du med 100% säkerhet vet att den finns en rad i databasen behöver du inte skapa ett recordset.

lastThreadID = connect.execute("select id from tblThread where ThreadCreator = '"&AnswerBy&"' order by id desc").GetRows()

Du hämtar ut id:et med lastThreadID(0,0).

Ah :) jag körde något i den stilen :) Tack så mkt för hjälpen ampy ;) :bire

Medlem sedan feb. 20011 498 inlägg
#6

Ett tips är att använda top 1 i sql-satsen eftersom du bara vill ha den översta raden. Onödigt att hämta ut fler rader/poster än vad du egentligen behöver.

Medlem sedan juli 20015 107 inlägg
#7

ampy skrev:

Ett tips är att använda top 1 i sql-satsen eftersom du bara vill ha den översta raden. Onödigt att hämta ut fler rader/poster än vad du egentligen behöver.

Redan gjort :) Men tack för tipset ;) :bire

Medlem sedan juli 20011 084 inlägg
#8

Så här har jag löst det i mina forum. Och jag har aldrig haft något problem med det.

http://www.webforum.nu/showthread.php?s=&postid=473883#post473883

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)