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.
7 svar · 284 visningar · startad av M.Cheraghi
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
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.
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
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).
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
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.
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
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