antarMedlem sedan dec. 2001289 inlägg hur gör jag så att bara 10 användare stannar kvar i fältet och resten raderas! så här ser insert koden ut
Anvandarnamn= request.querystring("Anvandarnamn")
SQL="SELECT Senastebesokare, Anvandarnamn FROM Medlemmar WHERE Anvandarnamn='" & Anvandarnamn & "'"
Connect.execute(SQL)
Set Recset=Server.CreateObject("ADODB.Recordset")
Recset.open SQL, Connect, 3,3
adda=session("Anvandarnamn")&","
happ=adda & recset("Senastebesokare")
if not recset("Senastebesokare") = "" then
if not left(recset("Senastebesokare"),instr(recset("Senastebesokare"), ",")) = session("Anvandarnamn")&"," then
if not recset("Anvandarnamn") = session("Anvandarnamn") then
sql="UPDATE Medlemmar SET Senastebesokare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql),,128
else
end if
end if
else
if not recset("Anvandarnamn") = session("Anvandarnamn") then
sql="UPDATE Medlemmar SET Senastebesokare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql),,128
end if
end if
och i senaste besokarfältet ser det ut:
pelle,gustav,antar,per,sven
Gör en relationstabell med senaste besökare istället. Det är ingen bra lösning att spara dessa som en kommaseparerad sträng i ett databasfält.
antarMedlem sedan dec. 2001289 inlägg jag vill inte skapa mer databaser det e onödigt och gör sidan trögare!
solbulleMedlem sedan mars 20015 287 inlägg Lite OT, men tar inte de båda IF-blocken ut varandra? Blir väl precis samma kod som körs vad som än händer!?! Eller?
Angående din fråga, klipp av strängen happ efter det tionde kommatecknet och spara den biten.
Typ fullösning, går nog att göra snyggare med instr osv.
varArray = split(happ,",")
If ubound(varArray) > 9 then
for i = 0 to 9
newArray = newArray & varArray(i) & ","
next
happ = newArray
End if
antar skrev:
jag vill inte skapa mer databaser det e onödigt och gör sidan trögare!
Det blir inte fler databaser utan bara en tabell till. Jag ska inte försöka övertala dig, vill du göra på ett mindre bra sätt så gör så. MEN en dbms selectrerar data effektivare än VB-Script gör, och det kommer säkerligen vara effektivare än ditt sätt. Dessutom blir det ett stort projekt varje gång du ska förändra din kommaseparerade sträng. :)
OveRRidEMedlem sedan feb. 200112 078 inlägg För upplysnings skulle vill jag påminna att detta redan har diskuterats i sin helhet i denna tråd. :)
antarMedlem sedan dec. 2001289 inlägg tack solbulle men hur ska jag koppla in det där med andra koden?
solbulleMedlem sedan mars 20015 287 inlägg Anvandarnamn= request.querystring("Anvandarnamn")
SQL="SELECT Senastebesokare, Anvandarnamn FROM Medlemmar WHERE Anvandarnamn='" & Anvandarnamn & "'"
Connect.execute(SQL)
Set Recset=Server.CreateObject("ADODB.Recordset")
Recset.open SQL, Connect, 3,3
adda=session("Anvandarnamn")&","
happ=adda & recset("Senastebesokare")
varArray = split(happ,",")
If ubound(varArray) > 9 then
for i = 0 to 9
newArray = newArray & varArray(i) & ","
next
happ = newArray
End if
if not recset("Senastebesokare") = "" then
if not left(recset("Senastebesokare"),instr(recset("Senastebesokare"), ",")) = session("Anvandarnamn")&"," then
if not recset("Anvandarnamn") = session("Anvandarnamn") then
sql="UPDATE Medlemmar SET Senastebesokare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql),,128
else
end if
end if
else
if not recset("Anvandarnamn") = session("Anvandarnamn") then
sql="UPDATE Medlemmar SET Senastebesokare='" & happ & "' WHERE Anvandarnamn='" & Anvandarnamn &"'"
connect.execute(sql),,128
end if
end if