Hur undviker jag dubletter med den koden?
'***************** Senaste besökare ****************
Set Connect=Server.CreateObject("ADODB.Connection")
sConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/Dagbok.mdb")&""
Connect.Open(sConnect)
if not recset("Lasare") = "" then
if not left(recset("Lasare"),instr(recset("Lasare"), "¶")) = session("Anvandarnamn")&"¶" then
if not recset("Anvandarnamn")=session("Anvandarnamn") then
sql="UPDATE Dagbok SET Lasare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql)
connect.close
set connect = nothing
else
end if
end if
else
if not recset("Anvandarnamn")=session("Anvandarnamn") then
sql="UPDATE Dagbok SET Lasare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql)
connect.close
set connect = nothing
end if
end if
'******************************************************
strArray = split(session("anvandarnamn"),"¶")
for i = lbound(strArray) to ubound(strArray)
if strArray(i) = [b]nånvariabel[/b] then
isMatch = True
exit for
end if
next
if isMatch <> True then
'gör uppdateringen
end if
strArray = split(session("anvandarnamn"),"¶")
for i = lbound(strArray) to ubound(strArray)
if strArray(i) = request.querystring("Anvandarnamn") then
isMatch = True
exit for
end if
next
if isMatch <> True then
'gör uppdateringen
end if
Just nu splittar koden sessions-variabeln 'anvandarnamn' och placerar den i en array som loopas igenom. Är en post i arrayen samma som request.querystring("anvandarnamn"), blir värdet isMatch -> 'True'.
Om isMatch inte är 'True' (vilket vi kollar nedanför), gör uppdateringen.
får inte igång den den lagrar samma användarnamn till databasen endå?
Set Connect=Server.CreateObject("ADODB.Connection")
sConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("Database/Dagbok.mdb")&""
Connect.Open(sConnect)
Anvandarnamn= request.querystring("Anvandarnamn")
id= request.querystring("ID")
SQL="SELECT Lasare, Anvandarnamn FROM Dagbok WHERE Anvandarnamn='" & Anvandarnamn & "'"
Connect.execute(SQL)
Set Recset=Server.CreateObject("ADODB.Recordset")
Recset.open SQL, Connect, 3,3
adda=session("Anvandarnamn")&"="&now()&"¶"
happ=adda & recset("Lasare")
if not recset("lasare") = "" then
strArray = split(recset("Lasare"),"=")
for i = lbound(strArray) to ubound(strArray)
if strArray(i) = session("Anvandarnamn") then
isMatch = True
exit for
end if
next
if isMatch <> True then
if not recset("Anvandarnamn")=session("Anvandarnamn") then
sql="UPDATE Dagbok SET Lasare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute sql,,128
connect.close
set connect = nothing
end if
end if
else
if not recset("Anvandarnamn")=session("Anvandarnamn") then
sql="UPDATE Dagbok SET Lasare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute sql,,128
connect.close
set connect = nothing
end if
end if
jag fattar faktiskt inte riktigt vad du har snott ihop för nåt när jag tänker efter.
Först hämtar du ett recordset från tabellen med användarens information, sedan placerar du namnet från sessionsvariabeln i variabeln 'adda', varpå du lägger ihop ett = och datumtiden samt ett skumt tecken ( ¶ ).
Och sen sätter du ihop allt som finns i 'adda' med 'lasare' från recordset:et..
Jag fattar noll.
312 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a