Hvilken type database er det? Er det Access må man lave det sådan at den henter alle poster og findes id'et fjernes det og der laves en update SQL sætning som opdater posten med det nye indhold af ekstra2 og ekstra3 hvor ID er lig den post der undersøges.
Her er eks på koden:
SQL = "select * from tabelnavn" Set rs=Conn.Execute(SQL)
idStr = "234,15,34,154
idArr = Split(idstr,",") 'laver et array med de id'er der skal fjernes do while not rs.EOF ekstra2=rs("ekstra2") ekstra3=rs("ekstra3") for i=0 to ubound(idArr) if inStr(1,","&ekstra2&",",","&idArr(i)&",",1)>0 then ekstra2 = replace(ekstra2&",",","&idArr(i)&",",",") ekstra2 = replace(ekstra2,",,",",") end if if inStr(1,","&ekstra3&",",","&idArr(i)&",",1)>0 then ekstra3 = replace(ekstra3&",",","&idArr(i)&",",",") ekstra3 = replace(ekstra3,",,",",") end if next if ekstra2<>rs("ekstra2") or ekstra3<>rs("ekstra3") then if len(ekstra2)>1 and right(ekstra2,1)="," then ekstra2=left(ekstra2,len(ekstra2)-1) if len(ekstra3)>1 and right(ekstra3,1)="," then ekstra3=left(ekstra3,len(ekstra2)-1) SQL = "update tabelnavn set ektra2 = '" & ekstra2 & "', ekstra3 = '" & ekstra3 & "' where id =" & rs("id") Conn.Execute(SQL) end if
Der sker slet ingenting... den redirecter bare uden at gøre noget. Der er ikke mellemrum mellem tallene.
Sender lige koden:
<%
'///finder ud af hvilken knap der er trykket på i formularen Dim IsGem, IsSlet IsGem = False IsSlet = False
If Request.Form("gem") <> "" Then IsGem = True Else If Request.Form("sletven") <> "" Then IsSlet = True End If End If
If IsGem = True then Set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT * FROM brugere WHERE brugerID=" & session("BrugerID") rs.Open sql, Connect, 1, 2
strSelectedCheckedBoxes = replace(Request.Form("favorit"), " ", "") rs("ekstra3")= "," & strSelectedCheckedBoxes rs.update End If
SQL = "select * from brugere WHERE brugerID=" & session("BrugerID") Set rs=Conn.Execute(SQL)
idStr = strSelectedCheckedBoxes
idArr = Split(idstr,",") 'laver et array med de id'er der skal fjernes do while not rs.EOF ekstra2=rs("ekstra2") ekstra3=rs("ekstra3") for i=0 to ubound(idArr) if inStr(1,","&ekstra2&",",","&idArr(i)&",",1)>0 then ekstra2 = replace(ekstra2&",",","&idArr(i)&",",",") ekstra2 = replace(ekstra2,",,",",") end if if inStr(1,","&ekstra3&",",","&idArr(i)&",",1)>0 then ekstra3 = replace(ekstra3&",",","&idArr(i)&",",",") ekstra3 = replace(ekstra3,",,",",") end if next if ekstra2<>rs("ekstra2") or ekstra3<>rs("ekstra3") then if len(ekstra2)>1 and right(ekstra2,1)="," then ekstra2=left(ekstra2,len(ekstra2)-1) if len(ekstra3)>1 and right(ekstra3,1)="," then ekstra3=left(ekstra3,len(ekstra2)-1) SQL = "update tabelnavn set ektra2 = '" & ekstra2 & "', ekstra3 = '" & ekstra3 & "' where id =" & rs("id") Conn.Execute(SQL) end if
men jeg har også lavet en anden skrive fejl ser jeg lige denne linje: if len(ekstra3)>1 and right(ekstra3,1)="," then ekstra3=left(ekstra3,len(ekstra2)-1)
Skal være:
if len(ekstra3)>1 and right(ekstra3,1)="," then ekstra3=left(ekstra3,len(ekstra3)-1)
YES, nu virker det... dit script kører jo perfekt. Det var kun nogle få rettelser i nogle af navnene der skulle laves...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.