webForumDet fria alternativet
Logga in / Bli medlem

max 10

ASP

7 svar · 211 visningar · startad av antar

Medlem sedan dec. 2001289 inlägg
Trådstart#1

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

Medlem sedan feb. 20012 412 inlägg
#2

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.

Medlem sedan dec. 2001289 inlägg
#3

jag vill inte skapa mer databaser det e onödigt och gör sidan trögare!

Medlem sedan mars 20015 287 inlägg
#4

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
Medlem sedan feb. 20012 412 inlägg
#5

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. :)

Medlem sedan feb. 200112 078 inlägg
#6

För upplysnings skulle vill jag påminna att detta redan har diskuterats i sin helhet i denna tråd. :)

Medlem sedan dec. 2001289 inlägg
#7

tack solbulle men hur ska jag koppla in det där med andra koden?

Medlem sedan mars 20015 287 inlägg
#8
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
267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)