Avatar billede canedo Nybegynder
04. marts 2005 - 20:37 Der er 1 kommentar og
1 løsning

Hjælp til overblik over error i tilføj/slette proces

Der opstår en fejl når jeg sletter folk fra en liste... Jeg bruger to felter i min database med komma-separeret data, som jeg henter ud når jeg skal bruge det, men der kommer fejl når jeg vil slette, og igen hente ud.

Mine scritps ser ud som følger:


1) Jeg tilføjer en ID til mit felt ekstra2:

rs("ekstra2")=rs("ekstra2") & "," & brugerID
rs.update



2) Jeg tilføjer ID til mit felt ekstra3 (vha checkfelt-array):

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



3) Jeg sletter ID'er i de to felter:

strSelectedCheckedBoxes = replace(Request.Form("slet"), " ", "")

SQL = "select * from brugere WHERE brugerID=" & session("BrugerID")
Set rs=Connect.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(ekstra3)-1)
      SQL = "update brugere set ekstra2 = '" & ekstra2 & "', ekstra3 = '" & ekstra3 & "' where brugerID=" & session("BrugerID")
      Connect.Execute(SQL)
    end if

  rs.Movenext
loop


------------------------

Mit problem opstår når jeg sletter ID'er men KUN når det er den sidste ID i databasen...

Problemet opstår også når jeg tilføjer et ID efter at have slettet alle. Så kan den ikke liste. Der kommer et komma for meget ind, - eller også forsvinder det ikke når det er slettet.

Fejlen ligger et sted oppe i scriptet. Håber der er en som kan give et hint...
Avatar billede canedo Nybegynder
04. marts 2005 - 20:47 #1
problemet opstår nok højst sandsynligvis fordi felterne henholstvist ser sådan her ud, når jeg har slettet begge:

ekstra3: ''
ekstra2: ','

Der er et komma for meget i ekstra2, men hvor kommer det ind?
Avatar billede canedo Nybegynder
04. marts 2005 - 21:53 #2
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester