Avatar billede jmc Nybegynder
21. juni 2002 - 13:34 Der er 13 kommentarer og
1 løsning

opdatering virker ikke ?



'hvis side_id findes skal det være
where visiter_id = v_visiter_id AND side_id = v_side_id

'men hvis side id ikke findes kun
where visiter_id = v_visiter_id


Her er min kode:


    '*** initialiser variable
    v_visiter_id = request.cookies("sitevisit")
    v_acum_id = 1
    v_side_id = request("s")



Det virker ikke under updater en eksisterende.....
Kunne jeg få noget hjælp?


If visitor_Obj.BOF then '*** opret en ny 
 
    if request("s") <> "" then ' Der er valgt en side og gæsten er ny
        strSQL_new="INSERT INTO [querys] ([visiter_id],[side_id], [visits])"
        strSQL_new=strSQL_new & " VALUES(" & [v_visiter_id] & "," & [v_side_id] & "," & [v_acum_id] & ")"
       
        'response.write strSQL_new

        MM_content2_STRING.Execute strSQL_new
      end if

else '*** updater en eksisterende
   
  if request("s") <> "" then ' Der er valgt en side og gæsten er kendt
  response.write "nu opdateres visits"
v_acum_id = Cint((rs_visiter_menu.Fields.Item("visits").Value) + 1)
   
strSQL_update = "Update querys set visits = " & replace(v_acum_id,"'","''") & " where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id & " "
   
            response.write strSQL_update
    MM_content2_STRING.Execute(strSQL_update)
    end if
End If %>
<%

Hvis side_id findes skal v_acum_id tælles op og visits blive én højere
Der oprettes altid en ny og en gammel opdates aldrig. Hvad kan dette skyldes?
Avatar billede jmc Nybegynder
21. juni 2002 - 14:53 #1
er det vulapykpyk ?
Avatar billede tmceu Praktikant
21. juni 2002 - 17:21 #2
Det er lidt noget rod, jeg forstår i hvert tilfælde ikke helt hvad du mener. Men en lille ting omkring din update af visits:

Brug denne i stedet:

strSQL_update = "Update querys set visits = visits + 1 where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id

Med din nuv. tæller funktion, risikerer du at den tæller forkert (mangler at tælle). Forestil dig, at flere brugere næsten samtidig kommer ind på den side hvor du tæller. Alle henter den samme nuværende værdi og ligger 1 til. Det betyder at du i værste fald, kun får talt besøg op med 1 ud af eks. 3 brugere, da de alle opdaterer med den gamle værdi + 1 = samme tal.

Håber du forstår.
Avatar billede jmc Nybegynder
21. juni 2002 - 17:40 #3
hver bruger har sin egen tæller. dvs. at der tælles hvor mange gange hver enkelt bruger hvar været på en side. Derfor tror jeg ikke at det konflikter som du siger. Ellers tror jeg ikke jeg forstår.
Avatar billede tmceu Praktikant
21. juni 2002 - 17:41 #4
Så er der sikkert ikke noget problem :)
Avatar billede jmc Nybegynder
21. juni 2002 - 17:47 #5
Den får aldrig udskrevet

response.write strSQL_update
som står efter strSQL_update så jeg tror der er noget galt med If visitor_Obj.BOF then sætningen. Jeg kan bare ikke finde ud af hvad det skulle være.
Avatar billede jmc Nybegynder
21. juni 2002 - 18:36 #6
forstod du det?
Avatar billede jmc Nybegynder
22. juni 2002 - 15:45 #7
Den opdatere aldrig men opretter hele tiden nye så jeg har.

visiter_id,side_id,visits
1,1,1
1,3,1
1,2,1
1,2,1

side 2 er blevet set 2 gange men bliver oprettet som to forskellige records? Alle sider har altid kun 1 i visits pga. at visits ikke bliver opdateret....
Jeg hæver points
Avatar billede jmc Nybegynder
25. juni 2002 - 09:16 #8
En simpel formulering:
Vil denne:  If visitor_Obj.BOF then '
være falsk hvis visitor_Obj er tom ?
Avatar billede tmceu Praktikant
25. juni 2002 - 10:01 #9
BOF og EOF er et boolean udtryk, som vil være true i begge tilfælde, hvis recordsettet er tomt.
Avatar billede jmc Nybegynder
25. juni 2002 - 10:28 #10
betyder det ikke begin og end of file?

Det er da ikke helt logisk at: If visitor_Obj.BOF then '
giver true når visitor_Obj er tom?

man kan du ikke være i begyndelsen eller slutningen af en fil som ikke findes.
Avatar billede jmc Nybegynder
25. juni 2002 - 10:39 #11
ok, derfor skulle min if then vendes rundt. ;o) Nu tæller den rigtigt. Men giver denne fejl hvis record ikke eksistere. Nu prøver den at opdatere uden af recorden findes???


nu opdateres visits
ADODB.Field error '800a0bcd'

Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

/wsite/index.asp, line 368


her er koden: (men vendt om)
<%' *** Opdater VISITOR TABEL
    '*** initialiser variable
    v_visiter_id = request.cookies("sitevisit")
    v_acum_id = 1
    v_side_id = request("s")

   
    strSQL_check= "Select * From visiters WHERE visiters_id=" + v_visiter_id
        Set visitor_Obj = Server.CreateObject("ADODB.RecordSet")
        'response.write strSQL_check
    visitor_Obj.Open strSQL_check, MM_content2_STRING
    'response.write visitor_Obj
   
  If visitor_Obj.BOF then '*** opret en ny 
 
    if request("s") <> "" then ' Der er valgt en side og gæsten er kendt
  response.write "nu opdateres visits"
v_acum_id = Cint((rs_visiter_menu.Fields.Item("visits").Value) + 1)
   
'strSQL_update = "Update querys set visits = " & replace(v_acum_id,"'","''") & " where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id & " "
    strSQL_update = "Update querys set visits = visits + 1 where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id
   
            response.write strSQL_update
    MM_content2_STRING.Execute(strSQL_update)
    end if

else '*** opdater en eksisterende
    'hvis side_id findes: where visiter_id = v_visiter_id AND side_id = v_side_id
  'men hvis side id ikke findes  where visiter_id = v_visiter_id
  if request("s") <> "" then ' Der er valgt en side og gæsten er ny
        strSQL_new="INSERT INTO [querys] ([visiter_id],[side_id], [visits])"
        strSQL_new=strSQL_new & " VALUES(" & [v_visiter_id] & "," & [v_side_id] & "," & [v_acum_id] & ")"
       
        'response.write strSQL_new

        MM_content2_STRING.Execute strSQL_new
      end if
End If %>
Avatar billede jmc Nybegynder
27. juni 2002 - 14:33 #12
takker
Avatar billede tmceu Praktikant
27. juni 2002 - 19:09 #13
Sorry, havde ikke set dine seneste kommentarer, men jeg antager at det virker nu.
Avatar billede jmc Nybegynder
27. juni 2002 - 19:13 #14
yep, det var en stavefejl som, du jo ikke kunne vide....
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