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. :o ;)
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.. :q
Jag fattar noll.
253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849