webForumDet fria alternativet

Ej dubletter

20 svar · 348 visningar · startad av antar

antarMedlem sedan dec. 2001289 inlägg
#1

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)

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
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
'******************************************************

LarsGMedlem sedan dec. 200012 464 inlägg
#2

I vilket sammanhang? När du hämtar data eller när du lagrar data?

antarMedlem sedan dec. 2001289 inlägg
#3

när jag lagrar data!

antarMedlem sedan dec. 2001289 inlägg
#4

:(

EkströmMedlem sedan feb. 20022 594 inlägg
#5

DU kan göra fältet i databasen, som du inte vill ska kunna dubbleras till primärnyckel.

antarMedlem sedan dec. 2001289 inlägg
#6

nej men det ser ut så här i fältet

nick,bla,bla,bla

, splittras

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Lagra inte data på det sättet. Lagra varje enskild sak som en egen post. Du behöver alltså ha en till tabell.

Då är det mycket enklare att hantera, t.ex. kan du sätta ett unique attribut på kolumnen.

antarMedlem sedan dec. 2001289 inlägg
#8

nej jag vill använda så orkar inte ändra på allt!! kan nån hjälpa?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#9
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

Typ, du förstår meningen.

antarMedlem sedan dec. 2001289 inlägg
#10

nope fattar inte??

antarMedlem sedan dec. 2001289 inlägg
#11

hjälp förstår inte rikitigt??

antarMedlem sedan dec. 2001289 inlägg
#12

vad ska det stå i nånvariabel?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#13
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örstår du?

antarMedlem sedan dec. 2001289 inlägg
#14

hur ska man göra när det e tomt i fältet?
då får man

Körningsfel i Microsoft VBScript (0x800A005E)
Ogiltig användning av Null: 'split'
/las.asp, line 34

jboy_87Medlem sedan aug. 20011 099 inlägg
#15
if not recset("Lasare") = "" then
'koden
else
'uppdatera
end if
antarMedlem sedan dec. 2001289 inlägg
#16

EJ dubbletter

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
LarsGMedlem sedan dec. 200012 464 inlägg
#17

Jag slog ihop trådarna.

antarMedlem sedan dec. 2001289 inlägg
#18

:(

OveRRidEMedlem sedan feb. 200112 078 inlägg
#19

adda=session("Anvandarnamn")&"="&now()&"¶"
happ=adda & recset("Lasare")

if not recset("lasare") = "" then
strArray = split(recset("Lasare"),"=")

Det där ser lite konstigt ut, första och sista raden. Vad är det egentligen för tecken du har mellan namnen?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#20

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.

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)